2

我需要将 javascript 对象传递给 PHP,然后将其解码为关联数组。我在这个网站上阅读了许多类似的问题,现在用谷歌搜索了几个小时。我的问题是我找不到涵盖双方(javascript 和 PHP)的简单示例。这是我尝试做的简化版本。将数据作为键/值对发布是我可以让任何东西通过的唯一方法。HTML 中有一个 DIV 用于显示答案。我要做的就是确认数据在此代码中通过。

我得到的只是“加载了 POST 数组”,这对我来说表明 POST 数组包含数据,但我要么解码错误,要么错误地访问关联数组。我还阅读了 JQUERY 站点上的 AJAX 和 POST 页面,但这些示例并没有让我到达我需要的地方。如果我为 strob 分配一个简单的字符串值,它就会完美传递。

        $(document).ready(function(){
            var obj={};
            obj.value1="foo";
            obj.value2="bar";
            var strob=JSON.stringify(obj);
            $.post("byterecord.php",{sendToValue: strob},
            function(data){
                $('#display').html(data.returnFromValue);
            }, 
            "json");
        });

字节记录.php

<?php
if (isset($_POST['sendToValue'])){

$aarray=json_decode($_POST['sendToValue'],true);
$strval=$aarray[value1];

}else{
$strval = "nothing.";
}

echo json_encode(array("returnFromValue"=>"POST array is loaded with " .$strval));  

?>
4

2 回答 2

0

您的代码工作正常:

但是,从控制台检查您的请求时,会生成 PHP 通知:

  Notice: Use of undefined constant value1 - assumed 'value1' 

要么改变参数

 $aarray[value1];

 $aarray['value1'];

或者,尝试关闭 error_reporting :

 error_reporting(0);
于 2012-10-12T03:08:51.960 回答
0

直接传递对象即可:

$.post("byterecord.php", obj, function() {});

然后在php中,您可以通过以下方式获取它:

$value1 = $_POST['value1'];
$value2 = $_POST['value2'];
于 2012-10-12T01:41:32.910 回答