我似乎无法弄清楚为什么这不起作用。我已经删除了所有元素,并将此条带化为基础示例。有人可以告诉我我做错了什么。当我点击html页面上的按钮时,我得到了初始警报,但从未收到来自我的回电的警报。
这是我的html文件的代码。的test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function()
{
$("#test").click(function()
{
alert("!st");
$.ajax({
type : 'POST',
url : 'test_ajax.php',
dataType : 'json',
data: {
email : 'Jeremy'
},
success : function(data){
alert(data.msg);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
}
});
return false;
});
});
</script>
</head>
<body>
<input name="test" id="test" type="button" value="Click Me"/>
<div id="results">
Hello
</div>
</body>
</html>
现在为php:test_ajax.php
<?php
if (empty($_POST['email'])) {
$return['error'] = true;
$return['msg'] = 'You did not enter you email.';
}
else {
$return['error'] = false;
$return['msg'] = 'You\'ve entered: ' . $_POST['email'] . '.';
}
echo json_encode($return);
?>
请非常感谢任何协助。
由于 杰里米
答案 0 :(得分:0)
代码看起来很干净。尝试使用php buffering。将ob_start()
放在PHP文件的开头和代码
// cleans the buffer
ob_clean();
echo json_encode($return);
die();
答案 1 :(得分:0)
我刚刚尝试了确切的代码,它运行正常。
您从上面列出的代码中错过了开头的php括号(<?php
),但这只是一个错误?
答案 2 :(得分:0)
我认为你错过了php文件的开放和$ return作为数组的声明。我试过这个并且工作正常:
<?
$return = array();
if (empty($_POST['email'])) {
$return['error'] = true;
$return['msg'] = 'You did not enter you email.';
}
else {
$return['error'] = false;
$return['msg'] = 'You\'ve entered: ' . $_POST['email'] . '.';
}
echo json_encode($return);
?>