我想在PHP中操作JavaScript数组 . 可以这样做吗?
$.ajax({
type: "POST",
url: "tourFinderFunctions.php",
data: "activitiesArray="+activities,
success: function() {
$("#lengthQuestion").fadeOut('slow');
}
});
活动是一个单维数组,如:
var activities = ['Location Zero', 'Location One', 'Location Two'];
我尝试这个时脚本没有完成...我该如何解决?
8 回答
这对我有用:
这对你的 PHP :
使用将数组操作数附加到所需变量名称的PHP内置功能 .
如果我们将值添加到Javascript数组,如下所示:
它可以按如下方式发送到服务器:
注意活动[]周围的引号 . 这些值将如下:
而已!现在您可以在PHP中访问它:
您需要在发送之前将数组编码为JSON,否则您只会在另一端获得一些垃圾 .
由于你发送的只是数组,你可以这样做:
这将自动为您转换数组 .
有关详细信息,请参阅here .
你需要把它变成一个字符串 . 您可以使用JSON2库中的stringify方法执行此操作 .
http://www.json.org/
http://www.json.org/js.html
代码看起来像:
所以
会变成:
您将不得不向PHP大师询问如何在服务器上处理此问题 . 我认为其他答案在这里是一个解决方案 .
可以以类似的方式从服务器返回数据 . 即你可以把它变成一个对象 .
我知道回答这个问题可能为时已晚,但这对我很有帮助:
用
var st = JSON.stringify(your_object);
字符串化你的javascript对象(json)将您的POST数据传递为"string"(也许使用jQuery:
$.post('foo.php',{data:st},function(data){... });
在服务器端处理中解码数据:
$data = json_decode($_POST['data']);
就是这样......你可以自由地使用你的数据 .
多维数组和单个数组作为普通数组处理 . 要访问它们,只需执行正常的
$foo[4]
.关联数组(javsacript对象)作为php对象(类)处理 . 要访问它们就像类:
$foo->bar
.使用JQuery Serialize函数
http://docs.jquery.com/Ajax/serialize
我应该是这样的: