Leí muchos de los hilos similares aquí para ver qué estoy haciendo mal, pero mi llamada AJAX parece correcta. ¿Que me estoy perdiendo aqui? No aparece ninguna alerta, así que supongo que es el lado JS.

$("#SignupSubmit").click(function()
{
var fName = $("#txtSignFName").val();
var lName = $("#txtSignLName").val();
var email = $("#txtSignEmail").val();
var pw    = $("#txtPW").val();


if( fName == "" || lName == "" || email == "" || pw == "" )
{
    alert();
}

else 
{


    $.ajax({
        type: "POST",
        url: "actionPages/signUp.php",
        dataType: 'json',
        data: {
            fName:fName,
            lName:lName,
            email:email,
            pw:pw
        },
        success: function(response) {
            alert(response);
        }
    });
}
});

Y PHP (¿es correcto?):

<?php 

require "../connectionPages/localConnect.php";

$fName  = $_POST["fName"];
$lName  = $_POST["lName"];
$email  = $_POST["email"];
$pw     = $_POST["pw"];

if($fName == null || $lName == null || $email == null || $pw == null)
$message = "missing required data";
else
{

$SQL =  "INSERT INTO `customer/User` (custFName,
                            custLName,
                            custEmail,
                            custPassword)
VALUES ('$fName', '$lName','$email', '$pw')";

$mysqli->query($SQL);

if($mysqli->affected_rows > 0)
{
    $message = "Record successfully inserted <br><a href='..'>Back to Main Page</a>";

    $SQL = $mysqli->insert_id; /* $SQL = "SELECT max(custID) as ID FROM `customer/User`"; */
    $res = $mysqli->query($SQL) or trigger_error($mysqli->error."[$SQL]");

    json_encode($res);
}
else {
    $message = "Unable to insert record: " . $mysqli->error;
}
$mysqli->close();

}

1
Calisto 14 dic. 2016 a las 05:42

2 respuestas

La mejor respuesta

La primera fase actualiza el siguiente código en la parte de datos.

data: {
            "fName":fName,
            "lName":lName,
            "email":email,
            "pw":pw
        },

Y está intentando obtener la última identificación insertada. ¿Lo es? si es así usa

$mysqli->insert_id;

En lugar de seleccionar consulta

1
Naga 14 dic. 2016 a las 02:56

Hacer esto en AJAX

$.ajax({
    type: "POST",
    url: "actionPages/signUp.php",
    dataType: 'json',
    data: {
        "fName":fName,
        "lName":lName,
        "email":email,
        "pw":pw
    },
    success: function(response) {
        var res=eval(response);
        alert(res.id);
    }
});

Y en tu página PHP. Hacer esto:

if($mysqli->affected_rows > 0)
{
    $message = "Record successfully inserted <br><a href='..'>Back to Main Page</a>";

    $lastid = $mysqli->insert_id; /* $SQL = "SELECT max(custID) as ID FROM `customer/User`"; */
    // $res = $mysqli->query($SQL) or trigger_error($mysqli->error."[$SQL]");

    echo json_encode(array('id'=>$lastid));
}

Espero que ayude

0
Hikmat Sijapati 14 dic. 2016 a las 05:40