Obtengo error en llamado AJAX

  • Autor Autor giulichajari
  • Fecha de inicio Fecha de inicio
giulichajari

giulichajari

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Tengo un formulario de factura donde si el cliente entrega parte del pago registro lo que entrego en el efectivo de la caja, y la diferencia con el total va a la cuenta corriente.

Entonces comparo si el vuelto es positivo, osea distinto de cero o menor registro, pero obtengo este error:

jquery-3.3.1.js:8463 Uncaught TypeError: Illegal invocation
at add (jquery-3.3.1.js:8463)
at buildParams (jquery-3.3.1.js:8450)
at buildParams (jquery-3.3.1.js:8444)
at Function.jQuery.param (jquery-3.3.1.js:8483)
at Function.ajax (jquery-3.3.1.js:9073)
at guardarDetalle (indexventa.js:802)
at HTMLInputElement. (indexventa.js:178)
at HTMLInputElement.dispatch (jquery-3.3.1.js:5183)
at HTMLInputElement.elemData.handle (jquery-3.3.1.js:4991)


Aquí el codigo:

Insertar CODE, HTML o PHP:
function guardarDetalle(){
 var d = new Date();
 var fecha =   d.getMonth() + '-'+ d.getDate() + '-' + d.getFullYear();
 var hora = d.getHours() + ':' + d.getMinutes() + ":" + d.getSeconds();  
 var vuelto=$("#Vuelto").val();
 if (vuelto>0){
   var efectivo = $("#efectivo").val();

    $.ajax({
    type: "POST",
        url: "/views/modules/cliente/procesodeuda.php",
        data: 
 {"accion":"acreditar","id":id,"acta":efectivo,"idsesion":sesion}, 


        error: function(){
            alert("error petición ajax");
        },

        });
    }}

Y es la unica llamada que da ese error, y no estoy enviando un formdata sino valores sueltos digamos. La verdad no entiendo porque, si las otras llamadas son iguales y funcionan perfecto
 
Última edición:
Hola

Tienes que ver si estás enviando bien los datos a procesodeuda.php, que estás recibiendo ahí, la función que muestras al parecer está bien. Se necesita ver el script para poder ayudarte mejor

Saludos
 
Hola

Tienes que ver si estás enviando bien los datos a procesodeuda.php, que estás recibiendo ahí, la función que muestras al parecer está bien. Se necesita ver el script para poder ayudarte mejor

Saludos
Si como no..aca esta procesodeuda.php:

PHP:
<?php
include_once ($_SERVER['DOCUMENT_ROOT'].'/models/claseCliente.php');
if ($_POST['accion']=='detallar'){
    $cliente=new Cliente();
    $idc=$_POST['id'];
    $arraydeuda=$cliente->deuda($idc);
    echo json_encode($arraydeuda);
    
}
if ($_POST['accion']=='pago'){
    $cliente=new Cliente();
    $idc=$_POST['id'];
    $arraydeuda=$cliente->pagos($idc);
    echo json_encode($arraydeuda);
    
}
if ($_POST['accion']=='acreditar'){
    $cliente=new Cliente();
    $idc=$_POST['id'];
    $acta=$_POST['acta'];
$sesion=$_POST['idsesion'];
    $cliente->acreditar($idc,$acta,$sesion);
   
    
}

?>

Vos decis que el error esta del lado de php? Porque en Network en la consola del navegador ni se ejecuta procesodeuda.php, osea no llega.
 
Última edición:
Si crees que es en Ajax mira en el navegador que estás enviando a PHP.

Esto es por partes, primero que tienes en el form, después ver qué estás enviando, sino sale nada, tienes que ver qué Ajax este recogiendo los valores y así

- - - Actualizado - - -

Estaba leyendo el error y al parecer es algo con las variables que envías en Ajax, puede ser que no las declaras o que no tienen valor, revísalos
 
Si crees que es en Ajax mira en el navegador que estás enviando a PHP.

Esto es por partes, primero que tienes en el form, después ver qué estás enviando, sino sale nada, tienes que ver qué Ajax este recogiendo los valores y así

No se ve nada, solo muestra error pero en la linea que dice $.ajax..
 
No se ve nada, solo muestra error pero en la linea que dice $.ajax..

Adonde estas viendo? si es chrome necesitas dar clic derecho y dar inspeccionar, despues a network, ahi vez cuando se conecta por ajax al archivo y los datos que estas enviando.

Sabes algo de ajax y php?

como hacer debug?
 
creo que el error se debe a que estas enviando mal la data en el ajax, las variables id y sesion donde se encuentras definidas en tu javascript ?
 
Definitivamente..muchas gracias a los dos..declare las variables, aparentemente no existian ahora funciona..
 
Atrás
Arriba