2013-07-25 1 views
1

Я использую плагин формы jQuery (http://malsup.com/jquery/form/) и пытаюсь отправить массив в обрабатываемый файл php, но я не могу работать так, как планировалось.jQuery Form Плагин размещения массива как строка

При регулярном JQuery $.ajax код примера:

var a = [1,2,3]; 

$.ajax({ 
    url: "uploader.php", 
    type: "POST", 
    data: ({ 
     a: a 
    }) 
}); 

будет выводить PHP переменная $_POST['a'] в

Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
) 

С плагином выход $_POST['a'] является строка, которая равна «1,2, 3" .

Я хочу, чтобы плагин действовал как $.ajax.

ответ

1

Было бы удобно, чтобы увидеть код, который устанавливает форму плагин JQuery, но если вы делаете капля в замене я взять на себя что-то вроде:

$('#myFormId').ajaxForm({ 
    url: uploader.php, 
    type: "POST", 
    data:({ 
    a:a 
    }) 
}); 

Без проверки я только предположил, что что «данные» получает объединены с данными формы на JQuery плагин Form

Я предполагаю, что форма Ajax плагин просто вызывает ToString Javascript метода на a - который дал бы «1,2,3»

Чтобы получить строку JSON, вы можете сделать JSON.str ingify (а). То есть:

$('#myFormId').ajaxForm({ 
    url: uploader.php, 
    type: "POST", 
    data:({ 
    a:JSON.stringify(a) 
    }) 
}); 

Не уверен, что будет работать - но стоит попробовать

+0

Это, безусловно, работает и может быть легко расшифровано с помощью PHP. Первоначально я думал, что я не замечаю вариант для плагина, который остановил бы его преобразование массива в строку, разделенную запятыми, но теперь я думаю, что контроль над обработкой массива myawlf является более практичной идеей. – benjovanic

+0

действительно - приятно слышать его работу :) –

0

Вы должны преобразовать массив в строку, а затем разобрать его в PHP скрипт

JQuery

var a = [1,2,3]; 

$.ajax({ 
    url: "uploader.php", 
    type: "POST", 
    data: ({ 
     a: $.param(a); 
    }) 
}); 

PHP

parse_str($_POST['a'] , $paramsArray); 

 Смежные вопросы

  • Нет связанных вопросов^_^