Как объединить элементы массива с пользовательскими индексами в Javascript? - PullRequest
1 голос
/ 27 марта 2012

У меня есть массив в 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 ]

1 голос
/ 27 марта 2012

Возможно, вы захотите взглянуть на parse_str, который принимает строку GET и разбирает ее на массив, ключи и все.

1 голос
/ 27 марта 2012

Попробуйте использовать push() для добавления элементов в массив.

1 голос
/ 27 марта 2012

Если вы используете objects.join("+") в JavaScript, вы должны использовать explode("+", $_REQUEST['fruits']) в PHP

0 голосов
/ 27 марта 2012

Даже если вы ничего не измените в исходном коде, эта строка

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

должно быть

$("#print_div").load("fruits.php?fruits="+string);
0 голосов
/ 27 марта 2012

Предположим, это ваш объект:

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; 
}
0 голосов
/ 27 марта 2012

Вы используете splice неправильно. Проверьте это здесь . Вы можете передать данные в метод .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; 
}    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...