Test Foro de elhacker.net SMF 2.1

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 (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.
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 (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