【问题标题】:php - return the value of an ajax post back to javascriptphp - 将 ajax 帖子的值返回给 javascript
【发布时间】:2014-01-07 20:11:48
【问题描述】:

我正在尝试通过让 php 文件将 javascript 回传的结果返回给 javascript 来测试从 javascript 到 php 文件的数据是否成功提交。我在 ajax 帖子中得到了成功的响应,但数据是一个空字符串。如何查明发布了哪些数据?这是我的代码:

JAVASCRIPT:

var benefitsArray = ["someData","someOtherData"];

$('#drop-submit').on('click',function(){
if (benefitsArray.length > 0){

    var formData = { "benefits" : benefitsArray };
    debugger;
    $.ajax({
        url : "dd-receiver.php",
        type: "POST",
        data : formData,
        success: function(data, textStatus, jqXHR)
        {
            console.log(data); //result is "";
            debugger;
            //data - response from server
        },
        error: function (jqXHR, textStatus, errorThrown)
        {
            console.log('failure');
        }
    });
}
});

PHP:

<?php 
echo $_POST["benefits"]
?>

更新:

我在 php 代码中得到了响应:

echo json_encode($_POST['benefits']); 

但问题是在javascript中,如果我记录数据,结果是

"["someData","someOtherData"]"(一个字符串)

而不是

["someData","someOtherData"](一个数组)

如何让它返回一个数组而不是一个字符串?

【问题讨论】:

  • 回显"Hello World!" 有什么不同吗?
  • 在点击函数末尾添加return false;有帮助吗?没有它,您可能正在提交表单,并且函数的其余部分都不会执行。
  • 顺便说一句,回显数组只会回显单词“Array”,而不是内容。
  • 你能提供var_dump($_POST);的输出吗?
  • 在Javascript中,如果你将dataType: "json"作为选项添加到$.ajax,jQuery会自动解析JSON并提供data作为对象。

标签: javascript php jquery post


【解决方案1】:

您没有解析发送给您的 JSON。

您可以通过将 dataType: 'JSON' 添加到您的 $.ajax 选项来让 jQuery 为您执行此操作...

 $.ajax({
   dataType: 'JSON',
   url : "dd-receiver.php",
   type: "POST",
   data : formData,
   success: function(data, textStatus, jqXHR) ...

手动使用JSON.parse

   success: function(data, textStatus, jqXHR) {
     benefits = JSON.parse(data);
     ...
   }

【讨论】:

    猜你喜欢
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    相关资源
    最近更新 更多