如何在Javascript中使用自定义索引连接数组项?

时间:2012-03-27 14:13:45

标签: php javascript arrays join

我在javascript中有一个数组,我需要加入并通过URL发送给PHP,如下所示:

var objects = [];

objects.splice("red",0,"apple");
objects.splice("yellow",0,"banana");
objects.splice("purple",0,"grape");

var string = objects.join("+");

$("#print_div").load("fruits.php?fruits=" + string);

在PHP中,我想收到字符串并将其转换回数组......如下所示:

$fruits = explode(" ", $_REQUEST['fruits']);

foreach($fruits as $key => $value){
    echo "The " . $value . " is " . $key; 
}

也许是javascript中的连接或拼接不会使这个工作,或者可能是php中的爆炸。我不确定,但我需要一个解决方案,能够在javascript中创建一个数组的自定义索引,然后发送到PHP,仍然能够访问索引和值名称。

感谢您的帮助!

6 个答案:

答案 0 :(得分:1)

如果您在javascript中使用objects.join("+"),则应在PHP中使用explode("+", $_REQUEST['fruits'])

答案 1 :(得分:1)

尝试使用push()向数组中添加元素。

答案 2 :(得分:1)

您可能需要查看parse_str,它接受​​一个GET字符串并将其解析为数组,键控和所有内容。

答案 3 :(得分:0)

您使用splice错误。检查here。 您可以将数据传递给.load方法,如下所示,这很简单。

var data = {
    "red": "apple",
    "yellow": "banana",
    "purple": "grape"
};
$("#print_div").load("fruits.php", data);

在php中:

foreach($_GET as $key => $value){
    echo "The " . $value . " is " . $key; 
}    

答案 4 :(得分:0)

假设这是你的对象:

var fruits = {
  red: "apple",
  yellow: "banana",
  purple: "grape"
};

将它传递给php,如:(ref

$("#print_div").load("fruits.php", {fruits: fruits});

像这样使用它:

$fruits = $_REQUEST['fruits'];

foreach($fruits as $key => $value){
    echo "The " . $value . " is " . $key; 
}

答案 5 :(得分:0)

即使您在原始代码中没有更改任何其他内容,此行

$("#print_div").load("fruits.php?fruits=string");

应该是

$("#print_div").load("fruits.php?fruits="+string);