it-roy-ru.com

Как передать массив Javascript через JQuery Post, чтобы все его содержимое было доступно через PHP Массив $ _POST?

Как передать массив Javascript через JQuery Post, чтобы все его содержимое было доступно через массив PHP $ _POST?

Пожалуйста, покажите пример кода, который бы сработал.

Спасибо!

39
PleaseHelpMe

Если вы хотите передать объект/хеш JavaScript (то есть ассоциативный массив в PHP), вы должны сделать:

$.post('/url/to/page', {'key1': 'value', 'key2': 'value'});

Если вы хотите передать фактический массив (то есть индексированный массив в PHP), то вы можете сделать:

$.post('/url/to/page', {'someKeyName': ['value','value']});

Если вы хотите передать массив JavaScript, вы можете сделать:

$.post('/url/to/page', {'someKeyName': variableName});
58
prodigitalson

Это довольно просто. В вашем JS все, что вы будете делать, это или что-то подобное:

var array = ["thing1", "thing2", "thing3"];

var parameters = {
  "array1[]": array,
  ...
};

$.post(
  'your/page.php',
  parameters
)
.done(function(data, statusText) {
    // This block is optional, fires when the ajax call is complete
});

На вашей странице php значения в виде массива будут доступны через $_POST['array1'].

Рекомендации

23
Groovetrain

Вот пример:

$.post("test.php", { 'choices[]': ["Jon", "Susan"] });

Надеюсь, поможет.

8
Rui

Я думаю, что мы должны отправить в этом формате 

var array = [1, 2, 3, 4, 5];
$.post('/controller/MyAction', $.param({ data: array }, true), function(data) {});

Это уже упоминалось в Передача массива в действие MVC через AJAX

У меня сработало

0
Sahithi