三天过去了,但仍然存在问题,使这些东西工作。当涉及到发送JSON数据时,在我的js文件上的AJAX调用似乎是有效的:
var _lname = $('#ptLastName').val();
var _fname = $('#ptFirstName').val();
var _mname = $('#ptMiddleName').val();
var _gender = $('#ptGender').val();
var _bday = $('input[name="birthdate"]').val(); // $('#ptBirthDate').val();
var _ssn = $('#ptSSN').val();
$.ajax({
type: "POST",
url: ".././CheckPerson.php",
data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var res = response.d;
if (res == true) {
jAlert('Person Name already exists!', 'Error');
return;
}
})
但在我的PHP文件中:
$lastname = json_decode($_POST['lastName']);
$firstname = json_decode($_POST['firstName']);
$middlename = json_decode($_POST['middleName']);
$response = array();
mysql_connect ("*****", "****") or die ('Error: ' . mysql_error());
mysql_select_db ("********");
$query = "SELECT Lastname, Firstname, MiddleName FROM tbl_people WHERE Lastname = '$lastname' || Firstname = '$firstname' || MiddleName = '$middlename'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if ($row) {
$response = json_encode(array('d' => true, 'test' => $lastname));
}
else {
$response = json_encode(array('d' => false, 'test' => $lastname));
}
echo $response;
print json_encode($_POST);
来自firebug控制台的一些错误显示:
<br />
<b>Notice</b>: Undefined index: lastName in <b>C:\xampp\htdocs\..\CheckPerson.php</b> on line <b>2</b><br />
<br />
<b>Notice</b>: Undefined index: firstName in <b>C:\xampp\htdocs\..\CheckPerson.php</b> on line <b>3</b><br />
<br />
<b>Notice</b>: Undefined index: middleName in <b>C:\xampp\htdocs\..\CheckPerson.php</b> on line <b>4</b><br />
{"d":false,"test":null}[]
我相信json_decode()
在我的php文件中工作得很好,但是$_POST['']
不能识别我从我的ajax调用中发布的数据,w/c变量已经声明:
data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",
我相信我的代码是正确的,似乎我已经阅读了这里的许多问题,并按照他们所说的做了,但不知道为什么会发生错误。有没有什么你见过的问题/bug?请告诉我。
发布于 2011-11-23 11:29:48
您可以使用firebug控制台查看ajax请求数据吗?
您无法从$_POST
获取姓氏和名字。它在json字符串中。首先,您必须使用以下命令获取数据
$data = $_POST['data'] or $_REQUEST['data']
然后,使用json_decode()
解码$data
并访问您的属性。
json_decode($data);
发布于 2016-02-10 15:33:50
$post = file_get_contents('php://input');
发布于 2019-05-23 16:04:38
而不是这个
data: "{'lastName':'" + _lname + "','firstName':'" + _fname +
"','middleName':'" + _mname + "'}",
使用这个
data: {lastName:_lname,firstName:_fname,middleName:_mname},
https://stackoverflow.com/questions/8236903
复制相似问题