如何使用PHP文件中的JSON字符串检索AJAX发布的值

时间:2017-11-09 07:36:58

标签: php jquery json ajax

我无法检索作为JSON字符串发送的PHP文件中的值。

JavaScript的:

$(document).ready(function() {
   //JavaScript Object
   var contact = {
      "client_email": $("#cleint_email").val(),
      "rep_name": $("#rep_name").val(),
      "rep_code": $("#rep_code").val(),
      "rep_email": $("#rep_email").val()
   }

   var contactStr = JSON.stringify(contact);

   //AJAX call
   $("#btnSend").bind("click", function() {
      $.ajax({
         type: 'POST',
         url: '/myphppage',
         data: { contactData: contactStr},
         dataType: 'json',
         success: function(result) {
            alert(result.email);
         }
      });
   });
});

PHP文件(myphppage):

<?php
$obj = $_POST['contactData'];
echo json_encode( array( "email" => $obj->client_email ) );
?>

没有警报弹出!在PHP文件中检索JSON值的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

  data: { "contactData": contactStr},

将您的数据属性更改为有引号

你也可以通过data:contact

并使用echo json_encode($_POST);

访问它

或者如果你想玩数据$abc['email']=$_POST["client_email"]等等

echo json_encode($abc);

答案 1 :(得分:0)

您可以使用json_decode

<?php

$obj = json_decode($_POST['contactData'],true);
echo json_encode( array( "email" => $obj['client_email']));
?>

答案 2 :(得分:0)

您需要将JSON对象编码为PHP变量,例如;

$json = '{"foo": 12345}';
$obj = json_decode($json);
print $obj->{'foo'}; // 12345

在你的情况下;

$obj = $_POST['contactData'];
$data = json_decode($obj);
print $data->{'client_email'}