我编写了html表单,并使用了jquery验证方法。然后当表单有效时,我使用Ajax将数据发送到mysql数据库。唯一的问题是没有输入到表单中的数据正在处理中,也许我错过了什么?在你说我需要逃避PHP代码的数据之前,我暂时删除了这个以保持简单。
<form id="photoSubmit" method="get" action="">
<div id="close-form">close</div>
<label><em>Fields marked * are required</em></label>
<div>
<label>FIRST NAME *</label><br>
<input type="text" name="firstName" id="firstName" autocorrect="off"/>
</div>
<div>
<label>SURNAME *</label><br>
<input type="text" name="surname" id="surname" autocorrect="off"/>
</div>
</form>
$().ready(function() {
$.validator.setDefaults({
submitHandler: function() {
var firstName = $('#firstName').attr('value');
var surname = $('#surname').attr('value');
$.ajax({
type: "POST",
url: "insert_ac.php",
data: "firstName="+ firstName + "&surname=" + surname,
success: function(){
window.location.replace("thank-you.php");
}
});
return false;
}
});
// validate signup form on keyup and submit
$("#photoSubmit").validate({
rules: {
firstName: "required",
surname: "required"
},
messages: {
firstName: "Please enter your first name",
surname: "Please enter your surname"
});
});
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="fub005_mif"; // Database name
$tbl_name="snappingcities"; // Table name
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$timedate = date("Y-m-d h:i:s");
$firstName=$_POST['firstName'];
$surname=$_POST['surname'];
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="INSERT INTO $tbl_name(firstName,surname)VALUES('$firstName','$surname')";
$result=mysql_query($sql);
// if successfully insert data into database, displays message "Successful".
if($result){
}
else {
echo "ERROR";
}
答案 0 :(得分:0)
我解决了这个问题,很简单。
改变这个:
data: "firstName="+ firstName + "&surname=" + surname
到此:
data: $("#photoSubmit").serialize()
答案 1 :(得分:0)
我个人更喜欢让jQuery创建查询字符串,所以自己创建一个对象:
data: {
firstname: $('#firstName').val(),
surname: $('#surname').val()
}
如果您使用.attr('value'),它可能正在寻找实际填充的值属性,而.val()将为您提供元素的当前值 - 我认为这是您的主要问题。< / p>