我在填寫表單和按提交以將我的信息發送到數據庫時遇到問題。問題是,即使我使用AJAX保留在同一頁面上並在「show_label」中收到回覆,我的頁面也會刷新。使用AJAX獲取響應 - 但頁面仍在刷新
我已經測試過是否通過更改show_label來調用addCustomerFunc,它確實發生了變化!但仍會刷新,並且在刷新後我會丟失信息。我希望如果有人能夠抓住我的錯誤。
這是我customer.php
<script type="text/javascript">
function addCustomerFunc(add_LN,add_FN,add_PN,add_DOB)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("show_label").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","addCustomer.php",true);
xmlhttp.send("add_LN="+add_LN+"&add_FN="+add_FN+"&add_PN="+add_PN+"&add_DOB="+add_DOB);
}
</script>
<p>Add New Customer:</p>
<div align="center">
<table width="337" border="1">
<tr>
<td width="154"><p>Last Name:</p>
<p>First Name:</p>
<p>Phone Number:</p>
<p>Date of Birth:</p>
<p> </p></td>
<td width="167"><p align="center">
<form>
<input type="text" name="add_LN" id="add_LN" />
<br/><br/>
<input type="text" name="add_FN" id="add_FN" />
<br /><br />
<input type="text" name="add_PN" id="add_PN" />
<br /><br />
<input type="text" name="add_DOB" id="add_DOB" />
<br /><br />
<input type="submit" name="add_Customer" id="New_Customer_Form" value="Add Customer" onClick="addCustomerFunc(add_LN, add_FN, add_PN, add_DOB)"/>
</form>
<div id="show_label"/>
</p>
</td>
</tr>
</table>
</div>
addCustomer.php
<?php
$username="****";
$password="****";
$database="****";
$lastName=$_POST['add_LN'];
$firstName=$_POST['add_FN'];
$phone=$_POST['add_PN'];
$dob=$_POST['add_DOB'];
//$membership==$_POST['membership'];
mysql_connect("******",$username,$password);
@mysql_select_db($database) or die("Unable to select database");
$query = "INSERT INTO customer (last_name, first_name, phone_no, date_of_birth, membership) VALUES ('$lastName', '$firstName', '$phone', '$dob', 'T')";
if (mysql_query($query)){
echo "Thanks";
} else
{
echo "Failed to insert customer into database";
}
mysql_close();
?>
而且,我是不是正確地傳遞變量addCustomerFunc? 我是否正確使用「發佈」?
謝謝!
編輯:我現在有與傳遞變量的問題,因爲它說: 未定義指數:add_LN在C:\用戶\ EJ \桌面\ cpsc471 \演示\ addCustomer.php 它增加了空白到我的數據庫,但。
謝謝! :D它保持在同一頁面! ...但現在即時通訊有另一個問題: 未定義的索引:add_LN在C:\ Users \ ej \ Desktop \ cpsc471 \ presentation \ addCustomer.php 此外,它會將空白元素添加到我的數據庫,即使我填寫字段形式。 我是否應該爲此創建一個新問題,因爲如果我將您的答案標記爲正確的人會在此後忽略此問題? – 2011-04-09 17:19:09
刪除'未定義索引'如果php.ini文件更改'ERROR_REPORTING' – John 2011-04-09 18:29:11
未定義索引是警告;這在特定情況下,這意味着姓氏字段爲空。您可以使用isset()函數在使用之前檢查索引是否存在,或者像大多數人一樣檢查,並忽略該錯誤,因爲它很小(請參閱ERROR_REPORTING或ERROR_LEVEL)。當然,如果需要姓氏,您需要在那裏進行一些數據驗證(即,檢查姓氏字段是否爲空),然後再將任何內容放入數據庫。 – Eric 2011-04-09 18:30:10