AJAX jquery json将数组发送到php

我正在尝试通过AJAX $ .post向php发送一个关联数组。 这是我的代码:</ p>

  var request = {
action:“add”,
requestor:req_id,
...
}

var reqDetails = $(“#request_details”)。val();

switch(reqDetails){
case 1:
request [note] = $(“#note”)。val();
break;

...

}

if(oldRequest()){
request [previousID] = $(“old_id”)。val();
}

$( '#req_button')。toggleClass('active');
$ .post(“scripts / add_request.php”,{
request_arr:JSON.stringify(request)
},function(data){
console .log(data);
$('#req_button')。toggleClass('active');
},'json');
</ code> </ pre>

我只是想在我的php脚本中读取收到的数据:</ p>

  echo json_decode($ _ POST [“request_arr”]); 
</ code> </ pre >

但它不起作用。 我是js的新手,我无法弄清楚我做错了什么。</ p>
</ div>

展开原文

原文

I'm trying to send a associative array via AJAX $.post to php. Here's my code:

var request = {
        action: "add",
        requestor: req_id,
        ...
    }

    var reqDetails = $("#request_details").val();

    switch(reqDetails){
        case 1: 
            request[note] = $("#note").val();
            break;

        ...

    }

    if(oldRequest()){
        request[previousID] = $("old_id").val();
    }

    $('#req_button').toggleClass('active');
    $.post("scripts/add_request.php", {
        request_arr: JSON.stringify(request)
        }, function(data){
            console.log(data);
            $('#req_button').toggleClass('active');
    }, 'json');

And i'm simply trying to read the received data in my php script:

echo json_decode($_POST["request_arr"]);

But it's not working. I'm a newbie to js, I can't figure out what I'm doing wrong.

douang2297
douang2297 谢谢你指出@James。我现在已经改变了代码,但我仍然遇到同样的问题。我甚至尝试过Deeban的答案,但这对我不起作用。
5 年多之前 回复
doujiang9887
doujiang9887 未定义的变量note和previousID应该是字符串“note”和“previousID”
5 年多之前 回复
douwei7501
douwei7501 data:JSON.stringify(request)
5 年多之前 回复

2个回答



检查以下链接以供参考</ p>

从JavaScript / jQuery发送数组到php </ p>

步骤1 < /h1>
nn
$.ajax({
type:“POST”,
url:“parse_array.php”,
data:{array:JSON.stringify(array)} ,
dataType:“json”,
success:function(data){
alert(data.reply);
}
});
</ code> </ pre>

< h1>第2步</ h1>

你的php文件如下所示:</ p>

 &lt;?php 

$ array = json_decode($ _ POST ['array']);
print_r($ array); //仅用于调试

$ response = array();
if(isset($ array [$ blah]))
$ response ['reply'] =“成功”;
其他
$ response ['reply'] =“失败”;

echo json_encode($ response);
</ code> </ pre>

第3步</ h1>

成功函数</ p>

  success:function(data){
console.log(data.reply);
alert(data.reply);
}

</ code> </ pre>
</ div>

展开原文

原文

Check below link for your reference

Sending an array to php from JavaScript/jQuery

Step 1

$.ajax({
    type: "POST",
    url: "parse_array.php",
    data:{ array : JSON.stringify(array) },
    dataType: "json",
    success: function(data) {
        alert(data.reply);
    }
});

Step 2

You php file looks like this:

<?php 



  $array = json_decode($_POST['array']);
    print_r($array); //for debugging purposes only

     $response = array();
     if(isset($array[$blah])) 
        $response['reply']="Success";
    else 
        $response['reply']="Failure";

   echo json_encode($response);

Step 3

The success function

success: function(data) {
        console.log(data.reply);
        alert(data.reply);
    }

dpt8910
dpt8910 检查响应页面中的语法错误
5 年多之前 回复
dpvomqeu396484
dpvomqeu396484 我试过这个,但我得到“POST server / add_request.php 500(内部服务器错误)”。 它位于“$ array = json_decode($ _ POST ['array']);”
5 年多之前 回复



您已经使用“ json </ strong>”作为dataType,因此不应该</ strong >对您的数据应用'stringify'操作。</ p>

您可以尝试 request_arr:request </而不是 request_arr:JSON.stringify(request)</ code> 代码>直接?</ p>
</ div>

展开原文

原文

You are already using "json" as dataType, so you shouldn't apply 'stringify' operation on your data.

Instead of request_arr: JSON.stringify(request), can you try request_arr: request directly?

dongxu0690
dongxu0690 你能用“print_r($ _ POST);”编辑你的PHP代码吗? 并分享结果?
5 年多之前 回复
dow57588
dow57588 我尝试过但仍然无法正常工作。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐