我正在尝试学习jQuery ajax这个函数似乎工作正常所以浏览器web开发人员工具说但是这些值并没有被提到我在这里的php文件(url)我的简单代码。
这是HTML和jQuery文件
<!Doctype HTML>
<html>
<head>
<title>Working with PHP and jQuery</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="js/jquery-1.11.3.min.js"></script>
</head>
<body>
<form id="#myForm">
<p>
<label>Enter your name</label>
<input type="text" name="Name">
</p>
<p>
<label>Are you male
<input type="checkbox" name="IsMale">
</label>
</p>
<p>
<label>Enter your email address</label>
<input type="email" name="Email">
</p>
<p>
<input type="submit" id="submitButton" name="submitButton" value="Submit">
</p>
</form>
<div id="loadResult"></div>
<script>
$(function() {
$('#submitButton').on('click', function(e){
e.preventDefault();
$.ajax({
url: 'php/form1.php',
type: 'POST',
data: $('#myForm').serialize(),
success: function(result) {
console.log(result); $('#loadResult').html(result);
},
error: function(badresult){ alert("ajax error function hit"); console.log(badresult); }
});
});
});
</script>
</body>
</html>
这是php文件
<?php
$name = $_POST['Name'];
$isMale = $_POST['IsMale'];
$email = $_POST['Email'];
echo "Name is $name, are you a male? $isMale. Your email address is $email";
?>
我正在使用jquery序列化功能,但不知道我哪里出错了
答案 0 :(得分:0)
你最有可能获得的是这条线爆炸
$isMale = $_POST['IsMale'];
在您的HTML中我们看到了
<input type="checkbox" name="IsMale">
复选框在未选中时未成功,这意味着它们不会显示在$_POST
中。来自jQuery serialize manual
注意:只有&#34;成功控制&#34;被序列化为字符串。没有提交按钮值被序列化,因为表单未使用按钮提交。
剪断
复选框和单选按钮(类型为&#34;输入&#34;或&#34;复选框&#34;的输入)中的值仅在选中时包含
所以你需要检查它是否已提交
$isMale = (isset($_POST['IsMale'])) ? 'Yes' : 'No';