2016-12-14 43 views
1

我在這裏閱讀了許多類似的線索,看看我做錯了什麼,但我的AJAX調用似乎是正確的。我在這裏錯過了什麼?沒有警報彈出,所以我認爲這是JS方面。AJAX:我能正確插入數據嗎?

$("#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); 
     } 
    }); 
} 
}); 

而PHP(這是正確的?):

<?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

第一階段更新數據部分下面的代碼。

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

而你正在試圖獲得最後插入的ID。是嗎?如果是使用

$mysqli->insert_id; 

,而不是選擇查詢

+0

哦。它仍然不起作用。我沒有注意到。是的,我試圖得到最後的ID – Calisto

+1

檢查您的瀏覽器控制檯,並在發送數據或發送數據之後發現問題。在這裏發佈控制檯消息以進一步幫助... – Naga

+1

add'error:function(e){console.log(e); '''成功後':function(response){alert(response); }' – Naga

0

在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); 
    } 
}); 

而在你的PHP頁面執行此操作。這樣做:

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)); 
} 

我希望它能幫助