-2
我試圖實現一個AJAX應用程序,用戶輸入用戶的id時,與id相關的所有信息將填充到剩餘的文本字段中。例如,當用戶輸入ID號碼「1234」時,姓氏,名字,最喜歡的顏色和最喜歡的號碼字段會自動填充在該數據庫中爲該ID找到的信息。從那裏用戶將能夠看到與該特定ID相關的所有當前信息並進行更改。200 OK錯誤AJAX - MYSQL請求+「undefined」返回
下面是我的腳本,但是當我運行這個時,所有返回的值都是「undefined」。當我運行通過Firebug的錯誤,一個GET響應即發:響應簡單地寫着:
SELECT *從用戶其中id = \ 「$ ID \」
任何想法可能是錯誤的?
<html>
<head>
<script type = "text/javascript">
var xhr;
if (window.ActiveXObject)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
function callServer()
{
// Create the id number
var id = document.getElementById("id").value;
// Create regular expressions
var reg1 = /\d{4}/;
// Test the string against the regular expression
if (reg1.test(id))
{
var idCheck = id;
}
else
{
alert ("Invalid id number");
return;
}
// Build the URL to connect to
var url = "(restofurl).../dataExtract.php?idCheck=" +escape(idCheck);
// Open a connection to the server
xhr.open("GET", url, true);
// Setup a function for the server to run when it is done
xhr.onreadystatechange = updatePage;
// Send the request
xhr.send(null);
}
function updatePage()
{
if ((xhr.readyState == 4) && (xhr.status == 200))
{
var response = xhr.responseText.split(",");
var reg3 = /\S+/;
if (!reg3.test(document.getElementById("lastname").value))
{
document.getElementById("lastname").value = response[1];
}
if (!reg3.test(document.getElementById("firstname").value))
{
document.getElementById("firstname").value = response[2];
}
if (!reg3.test(document.getElementById("color").value))
{
document.getElementById("color").value = response[3];
}
if (!reg3.test(document.getElementById("number").value))
{
document.getElementById("number").value = response[4];
}
}
}
</script>
</head>
<body>
<form method = "POST" action = "<?php echo $_SERVER['PHP_SELF']; ?>">
<p>Update Database:</p>
<p>ID:<input type = "id" id="id" name="id" size="20" maxlength="40" onchange = "callServer();" /></p>
<p>Update Last Name:<input type = "lastname" id="lastname" name="lastname" size="20" maxlength="40" /></p>
<p>Update First Name:<input type = "firstname" id="firstname" name="firstname" size="20" maxlength="40" /></p>
<p>Update Favorite Color:<input type = "color" id="color" name="color" size="20" maxlength="40" /></p>
<p>Update Favorite Number:<input type = "number" id="number" name="number" size="20" maxlength="40" /></p>
<input type="submit" id="submit" name ="submit" value="Update" /><br><br>
</form>
</body>
</html>
dataExtract.php
<?php
// Connect to the MySQL database
$con = mysql_connect("server","user","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("tablename", $con);
$id = $_GET["id"];
$table = "users";
$query = 'SELECT * from $table where id = \"$id\"';
$result = mysql_query($query) or trigger_error(mysql_error().$query);
if (empty($result))
{
$response = " , , , ";
}
else
{
$row = $result->fetch_row();
$response = $row[1].",".$row[2].",".$row[3].",".$row[4];
echo $response;
}
// Close connection to the database
mysql_close($con);
?>
我敢打賭,它不止這些,因爲它肯定會觸發你的'trigger_error()'子句。您是否檢查過Firebug的完整響應? –