Ayuda jquery ajax error internal serve 500

Iniciado por andrex.125, 12 Diciembre 2014, 07:46 AM

0 Miembros y 1 Visitante están viendo este tema.

andrex.125

Hola, buenas estoy trabajando en un proyecto, y pues ahora tengo un problema. Tengo una tabla que se carga desde mysql:
* tengo una columna asignar que es un link, y tiene una llamada al método asignar y le envía el id del la fila seleccionada.
Código (html4strict) [Seleccionar]

<table class="table table-bordered" id="todos" >
       <tr bgcolor="#FF9292">
           <th >Id</th>
           <th>Numero inventario</th>
           <th>Fecha Compra</th>
<!--            <th>Categoria</th>
           <th>Estado</th>-->
           <th>Descripcion</th>
           <th>Asignar</th>
       </tr>
       <?php foreach ($lista as $activo) { ?>
           <tr style="background-color:<?php echo $this->cycle(array("#F0F0F0""#FFFFFF"))->next() ?>" >
               <td><?= $activo["Id"] ?></td>
               <td><?= $activo["Numeroinventario"] ?></td>
               <td><?= $activo["Fechacompra"] ?></td>
<!--                <td><?= $activo["Nombrecategoria"] ?></td>
               <td><?= $activo["Nombreestado"] ?></td>-->
               <td><?= $activo["Descripcion"] ?></td>
               <td><a class="btn btn-primary"   onclick="asignar(''+<?= $activo['Id']; ?>)" ><span class="glyphicon glyphicon-plus"> </span> Asignar</a></td>

           </tr>
       <?php ?>

   </table>


*Aqui el Script con la funcion asignar

Código (javascript) [Seleccionar]

function asignar(id)
           {
               
                var id1= id;
               $.ajax({
                       type: "POST",
                       data: "id="+id1  ,
                       dataType: "html",
                       url: 'procesar.php',
                       
                       beforeSend: function () {
                           //   imagen de carga
                           $("#resultado").html("<p align='center'><img src='../../img/loading.gif' /></p>");
                       },
                                   error: function (jqXHR, exception) {
                           if (jqXHR.status === 0) {
                               alert('Not connect.\n Verify Network.');
                           } else if (jqXHR.status == 404) {
                               alert('Requested page not found. [404]');
                           } else if (jqXHR.status == 500) {
                               alert('Internal Server Error [500].');
                           } else if (exception === 'parsererror') {
                               alert('Requested JSON parse failed.');
                           } else if (exception === 'timeout') {
                               alert('Time out error.');
                           } else if (exception === 'abort') {
                               alert('Ajax request aborted.');
                           } else {
                               alert('Uncaught Error.\n' + jqXHR.responseText);
                           }
                       },
                       success: function  (data) {
//
                            $("#resultado").empty();
                           $("#todos").empty();
                           $("#resultado").append(data);

                       }
               
         
             });
             }


procesar.php
Código (php) [Seleccionar]


            $idActivo = $this->request->getPost("id");
           
            $insert = $asignacion->asignar($idActivo, $documento, "2014-10-10");


no se que estoy haciendo mal pero cuando click en link Asignar me sale Internal Server Error [500].
Le agradecería mucho si alguien sabe que estoy haciendo mal.

engel lex

#1
creo que la data la estás pasando mal
tienes
Código (javascript) [Seleccionar]
$.ajax({
                       type: "POST",
                       data: "id="+id1  ,
                       dataType: "html",
                       url: 'procesar.php'


sin embargo la notacion JSON es así: (igual que la notacion del ajax que haces)
Código (javascript) [Seleccionar]
data: {id: id1}, //bien, objeto
data: "id="+id1 , //mal, sttring


ya que la data por post debe ser un objeto y no un string :P

intenta con eso y avisas...
por otro lado evita usar short tags
Código (php) [Seleccionar]
<?= ?>
a menos que realmente sepas qué estás haciendo y si el servidor y tus frameworks lo toleran correctamente

si aun con ese cambio no se arregla, crea un form y has la peticion manualmente para ver si da algún error en particular
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.