Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: andrex.125 en 12 Diciembre 2014, 07:46 am



Título: Ayuda jquery ajax error internal serve 500
Publicado por: andrex.125 en 12 Diciembre 2014, 07:46 am
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
  1. <table class="table table-bordered" id="todos" >
  2.        <tr bgcolor="#FF9292">
  3.            <th >Id</th>
  4.            <th>Numero inventario</th>
  5.            <th>Fecha Compra</th>
  6. <!--            <th>Categoria</th>
  7.            <th>Estado</th>-->
  8.            <th>Descripcion</th>
  9.            <th>Asignar</th>
  10.        </tr>
  11.        <?php foreach ($lista as $activo) { ?>
  12.            <tr style="background-color:<?php echo $this->cycle(array("#F0F0F0", "#FFFFFF"))->next() ?>" >
  13.                <td><?= $activo["Id"] ?></td>
  14.                <td><?= $activo["Numeroinventario"] ?></td>
  15.                <td><?= $activo["Fechacompra"] ?></td>
  16. <!--                <td><?= $activo["Nombrecategoria"] ?></td>
  17.                <td><?= $activo["Nombreestado"] ?></td>-->
  18.                <td><?= $activo["Descripcion"] ?></td>
  19.                <td><a class="btn btn-primary"   onclick="asignar(''+<?= $activo['Id']; ?>)" ><span class="glyphicon glyphicon-plus"> </span> Asignar</a></td>
  20.  
  21.            </tr>
  22.        <?php } ?>
  23.  
  24.    </table>
  25.  

*Aqui el Script con la funcion asignar

Código
  1. function asignar(id)
  2.            {
  3.  
  4.                 var id1= id;
  5.                $.ajax({
  6.                        type: "POST",
  7.                        data: "id="+id1  ,
  8.                        dataType: "html",
  9.                        url: 'procesar.php',
  10.  
  11.                        beforeSend: function () {
  12.                            //   imagen de carga
  13.                            $("#resultado").html("<p align='center'><img src='../../img/loading.gif' /></p>");
  14.                        },
  15.                                    error: function (jqXHR, exception) {
  16.                            if (jqXHR.status === 0) {
  17.                                alert('Not connect.\n Verify Network.');
  18.                            } else if (jqXHR.status == 404) {
  19.                                alert('Requested page not found. [404]');
  20.                            } else if (jqXHR.status == 500) {
  21.                                alert('Internal Server Error [500].');
  22.                            } else if (exception === 'parsererror') {
  23.                                alert('Requested JSON parse failed.');
  24.                            } else if (exception === 'timeout') {
  25.                                alert('Time out error.');
  26.                            } else if (exception === 'abort') {
  27.                                alert('Ajax request aborted.');
  28.                            } else {
  29.                                alert('Uncaught Error.\n' + jqXHR.responseText);
  30.                            }
  31.                        },
  32.                        success: function  (data) {
  33. //
  34.                             $("#resultado").empty();
  35.                            $("#todos").empty();
  36.                            $("#resultado").append(data);
  37.  
  38.                        }
  39.  
  40.  
  41.              });
  42.              }
  43.  

procesar.php
Código
  1.  
  2.             $idActivo = $this->request->getPost("id");
  3.  
  4.             $insert = $asignacion->asignar($idActivo, $documento, "2014-10-10");
  5.  

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.


Título: Re: Ayuda jquery ajax error internal serve 500
Publicado por: engel lex en 12 Diciembre 2014, 08:01 am
creo que la data la estás pasando mal
tienes
Código
  1. $.ajax({
  2.                        type: "POST",
  3.                        data: "id="+id1  ,
  4.                        dataType: "html",
  5.                        url: 'procesar.php'

sin embargo la notacion JSON es así: (igual que la notacion del ajax que haces)
Código
  1. data: {id: id1}, //bien, objeto
  2. 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
  1. <?= ?>
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