這是我第一次使用AJAX。我試圖將數據從HTML表單寫入到phpmyadmin數據庫。我正在使用jQuery進行AJAX調用。我懷疑,因爲我已經包括一個Javascript alert
與echo
在registerUser.php
文件的頂部,當我嘗試運行這段代碼,所以PHP甚至沒有運行就不會出現有什麼東西錯了jQuery。瀏覽器中沒有Javascript錯誤。我感謝你的洞察力。AJAX通過jQuery和PHP發佈文章
function registerUserViaAjax() {
$.ajax({
type: "POST",
url: "registerUser.php",
data: {
registerUsername: $('#registerUsername').val(),
registerPassword: $('#registerPassword').val(),
registerPassword: $('#registerEmail').val()
}
})
}
<label>Username</label>
<input class="w3-input" type="text" id="registerUsername">
<label>Password</label>
<input class="w3-input" type="password" id="registerPassword">
<label>Confirm Password</label>
<input class="w3-input" type="password" id="registerConfirmPassword">
<label>Email Address</label>
<input class="w3-input" type="text" id="registerEmail">
<button class="w3-btn w3-green" style="margin-top:3%;margin-bottom:3%" id="registerButton" onclick="registerUserViaAjax()">Go</button>
<?php
$host = 'localhost';
$user = 'root';
$pw = '';
$db = 'fall2167';
$dbc = mysqli_connect($host, $user, $pw, $db)
or die('LOCAL CONNECT ERROR: '. mysqli_connect_error());
$uname = mysqli_real_escape_string($dbc, $_POST['registerUsername']);
$pword = mysqli_real_escape_string($dbc, $_POST['registerPassword']);
$pword = password_hash($pword, PASSWORD_DEFAULT);
$email = mysqli_real_escape_string($dbc, $_POST['registerEmail']);
$check = mysqli_query($dbc, "select id from hw6 where uname = '$uname'")
or die('confirm6 read error: ' . mysqli_error($dbc));
if (mysqli_num_rows($check) != 0)
{
echo "<script> usernameTaken(); </script>";
exit;
}
$query = "insert into users(uname, pword, email)" . "values('$uname','$pword','$email')";
$result = mysqli_query($dbc, $query)
or die('DB Write Error: ' . mysqli_error($dbc));
echo "<script> openSuccessMessage(); </script>";
mysqli_close($dbc);
?>
'我已經包含在registerUser.php文件的頂部JavaScript警告回聲,當我試圖運行這個code'這是可以預料它不會出現 - AJAX請求在服務器上運行。您放入端點的JS代碼將被忽略。爲了幫助我們,我們需要看到兩件事情 - 運行AJAX請求時控制檯的輸出,以及registerUser.php中的PHP代碼 –
還要注意您要發送兩次相同的屬性 - 「registerPassword」。因此,從$('#registerPassword')。val()'中的第一個將被覆蓋。 –
你可以請張貼你的PHP代碼一件事,你指向正確的網址? – Amir