Aquí está mi código. Estoy bastante seguro de que mi código es correcto, pero no funciona correctamente solo para la última consulta. Todas las consultas restantes funcionan bien, pero la última consulta no devuelve valor con algún objeto que no es accesible. sin embargo, se está produciendo la actualización de la tabla. ¿Lo que está mal? Adjunto la imagen del error que se muestra. Imagen de error
Primero el código para la página de inicio:
<!DOCTYPE html> <head> </head> <body> <form> <input type="text" id='dat'> <button id='submit'>Submit</button> </form> <script src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.js"> </script> <script> $(function(){ $('#submit').click(function(){ var x=$('#dat').val(); $.ajax({ type:"GET", url: "promo_code_apply2.php", dataType: "json", data: { x : x }, success: function(result){ alert(result); }, error: function(e) { // Handle error here console.log(e); } }); }); }); </script> </body>Ahora el código para backend:
<?php include('connection.php'); include('functions.php'); $p_code=$_GET['x']; $sql="select * invite_codes where promo_name='".$p_code."'"; $res=mysqli_query($con,$sql); if(!$res) { $data=mysqli_error($con); echo json_encode($data); die(); } else{ if(mysqli_num_rows($res)==0) { $data="Invalid Code"; echo json_encode($data); } else{ $row=mysqli_fetch_assoc($res); $ph=$row['user_mob']; $sql2="update user_signup set no_of_referrals=no_of_referrals+1 where promo_name='".$p_code."'"; $res2=mysqli_query($con,$sql2); if(!$res2) { $data=mysqli_error($con); echo json_encode($data); die(); } else { $data="Conngrats"; echo json_encode($data); } } } ?>No configuró su tipo de botón y, como está dentro del form su tipo predeterminado es enviar. Cuando se presiona su botón, se llama a su controlador de eventos jQuery , pero después de completarlo, se llama a la acción predeterminada, que es la acción de envío de formulario. Recarga su página y su controlador jQuery no obtendrá datos de PHP , porque el estado de JavaScript se restablece después de la recarga. Para evitar este comportamiento, puede:
Ponga return false al final de su controlador de eventos jQuery , así:
$(function(){ $('#submit1').click(function(){ ... }); return false; // <--- evita la acción predeterminada }); });
o
type="button"