当前位置: 首页 > 面试题库 >

从AJAX调用到PHP检索POST数据

杜嘉慕
2023-03-14
问题内容

三天过去了,但仍然无法解决问题。当发送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['']无法从w / c变量声明的ajax调用中识别出我发布的数据:

data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",

我相信我对我的代码做得正确,似乎我在这里阅读了许多问题,做了他们说的话,但不知道为什么会发生错误。您是否遇到任何问题/错误?请告诉我。


问题答案:

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

您无法从$ _POST获得姓氏,名字。它在json字符串中。首先,您必须使用

 $data = $_POST['data'] or $_REQUEST['data']

Then, decode the $data using json_deocde and access your attributes.

json_decode($data);


 类似资料:
  • 问题内容: :我只想显示Mysql表记录的简单ajax代码: Records.php是用于从Mysql提取记录的文件。 在数据库中只有两个字段:“名称”,“地址”。 该代码不起作用。 问题答案: 为了使用Ajax + jQuery检索数据,您应该编写以下代码: 对于mysqli连接,请编写以下代码: 为了显示数据库中的数据,您应该这样编写:

  • 我正在尝试使用从axios调用中检索到的数据。我在响应中得到了正确的信息,但当我试图返回响应时,调用函数中没有定义。是否有不同的方法将response.data返回给调用函数?

  • 问题内容: 我使用jquery ajax从javascript调用php的代码似乎存在问题。Ajax调用似乎成功了,但是我没有从php函数返回正确的信息。 在php函数中,我创建一个SQL查询。在执行删除查询之前,我将查询发回作为调试的响应。这是显示查询的div的HTML。 这是jquery ajax调用。有两个变量发送给PHP函数:用于删除节点的nodeid和用于该函数的option delet

  • 问题内容: 表单发送AJAX代码: HTML表单: 在我的PHP中: 如何在PHP端访问每个box变量值? 问题答案: 您的js应该是这样的: 使用php,您应该循环结果数组。 编辑: 您必须在jQuery中使用serializeArray函数。然后它将与此代码一起工作。

  • 问题内容: 我熟悉如何使ajax转到php页面并执行一系列操作,然后返回json数据。但是,可以调用驻留在给定页面中的特定函数吗? 基本上我想要的是减少项目中的文件数。因此,我可以将很多常用功能放在一页中,然后立即调用我想要的任何功能。 问题答案: 对于ajax请求 1.在您的网页中包含Jquery库。例如: 2.点击按钮调用功能 3.点击按钮,调用JavaScript创建函数。 在服务器端的te

  • 问题内容: 这是我的jQuery代码: 在process.php页面中,我有多个功能。一种功能是sendmail()。 如何通过ajax调用此函数?我将代码编写为: 但是什么也没发生。 问题答案: 与通话传递一些到。 在php页面中,