javascript数组到php文件

时间:2013-10-18 16:18:04

标签: javascript php

HTML

<button id="btn2">show alert array</button>
<button id="btn"> go to php</button>

的javascript

var test = new Array();
test.push("one");
test.push("two");
json = JSON.stringify(test);

$('#btn').click(function(){
$.ajax({
type: "POST",
url: "json.php",
data: {data:json}
});
});

$('#btn2').click(function(){
alert(json);
});

php文件(json.php)

<?php
$data = json_decode($_POST['data']);
var_dump($data);
?>

id =“btn2”正在运​​行。它会显示一个包含数组的警报,但当我点击id =“btn”时,它根本不起作用。你能告诉我这些代码的问题吗?我只想将一个数组从javascript发送到php文件。

3 个答案:

答案 0 :(得分:3)

您在客户端执行 GET 请求:

type: "GET",

但您希望服务器端的 POST 数据:

$_POST['data']

(这个答案不再适用,因为OP编辑了这个问题。)

答案 1 :(得分:1)

你怎么说它根本不起作用,检查你的ajax函数,你应该有一个成功的处理程序,

$('#btn').click(function(){
$.ajax({
type: "GET",
url: "json.php",
data: {data:json},
success:function(data){
alert(data);
}
});
});

否则你怎么知道ajax是否发生了?

答案 2 :(得分:0)

这是将数组从JavaScript发送到PHP的正确方法。这里不需要JSON。您可以在AJAX调用中发送数组。它将被正确序列化:

$('#btn').click(function(){
    $.ajax({
        type: "POST",  // Make sure to read from the right array in PHP
        url: "json.php",
        data: {data: test} // test is your array, no JSON.stringify needed
    });
});

您正在阅读PHP中的$_POST['data'],因此您需要将数据发送为POST

这有一个额外的好处,在PHP中你的$_POST['data']将是一个数组!不需要json_decode