【发布时间】:2012-01-07 07:10:08
【问题描述】:
我有一个 AJAX 脚本,可以在我的一个 PHP 文件中发布数据:
var _lname = $('#ptLastName').val();
var _fname = $('#ptFirstName').val();
var _mname = $('#ptMiddleName').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;
}
它工作正常,我可以看到在 Firebug 控制台中发布的 JSON 数据。问题出在这个 PHP 代码上:
$firstname = json_decode($_POST['firstName']);
$lastname = json_decode($_POST['lastName']);
$middlename = json_decode($_POST['middleName']);
$response = array();
上面的 PHP 代码似乎无法将 'firstName'、'lastName' 和 'middleName' 识别为已发布的 JSON 参数,并为所有已发布的参数返回类似的 Undefined index: firstName in C:...。
我还尝试使用$data = $_POST['data'] 和$_REQUEST['data'] 获取所有JSON 参数并使用json_decode($data); 对其进行解码,但没有成功。
我还为帖子$.post('.././CheckPerson.php', {data: dataString}, function(res){ }); 使用了 AJAX 缩短代码,它适用于我的 PHP 文件,我的 PHP 文件现在可以读取 lastName、firstName 和 middleName,但我认为它是不是 JSON 数据,而只是文本数据,因为 firebug 无法将其读取为 JSON 数据。现在,我很困惑我的 PHP 文件将如何读取 JSON 数据参数。你们对此有什么建议吗?
【问题讨论】: