首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从对PHP的AJAX调用中检索POST数据

从对PHP的AJAX调用中检索POST数据
EN

Stack Overflow用户
提问于 2011-11-23 11:15:15
回答 4查看 73.5K关注 0票数 10

三天过去了,但仍然存在问题,使这些东西工作。当涉及到发送JSON数据时,在我的js文件上的AJAX调用似乎是有效的:

代码语言:javascript
运行
复制
 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文件中:

代码语言:javascript
运行
复制
$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控制台的一些错误显示:

代码语言:javascript
运行
复制
<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变量已经声明:

代码语言:javascript
运行
复制
data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",

我相信我的代码是正确的,似乎我已经阅读了这里的许多问题,并按照他们所说的做了,但不知道为什么会发生错误。有没有什么你见过的问题/bug?请告诉我。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-23 11:29:48

您可以使用firebug控制台查看ajax请求数据吗?

您无法从$_POST获取姓氏和名字。它在json字符串中。首先,您必须使用以下命令获取数据

代码语言:javascript
运行
复制
 $data = $_POST['data'] or $_REQUEST['data']

然后,使用json_decode()解码$data并访问您的属性。

代码语言:javascript
运行
复制
json_decode($data);
票数 11
EN

Stack Overflow用户

发布于 2016-02-10 15:33:50

代码语言:javascript
运行
复制
$post = file_get_contents('php://input');
票数 8
EN

Stack Overflow用户

发布于 2019-05-23 16:04:38

而不是这个

代码语言:javascript
运行
复制
data: "{'lastName':'" + _lname + "','firstName':'" + _fname +
"','middleName':'" + _mname + "'}",

使用这个

代码语言:javascript
运行
复制
data: {lastName:_lname,firstName:_fname,middleName:_mname},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8236903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档