$.post + много масивов
Столкнулся с вот такой проблемой, нужна через $.post отправить много массивов, но не знаю как это сделать.
Например у меня есть вот такой html. <input type=text name="save_con[home_title]" value="$config['home_title']"> <input type=text name="save_con[url]" value="$config['url']"> <input type=text name="save_con[title]" value="$config['title']"> ... Ну вот и собственно и проблема, в нете нашол как отправить отдельные значение. $.post(action, {'foo' : $('#test').val()},function(data){ ... }); Вопрос как отправить массив с данными если у меня таких input более 30 и больше? Обработчик test.php должен получить массив name=>value. |
Засунуть все инпуты в форму и напустить на неё jQ.serialize()
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
var result = $('input').serializeArray(); alert(result); $.post("engine/jquery/save.php",{name:'value'},function(data){..} но он выдал мне что то такое. [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] Я не понял что эта такое и как отправить через $.post И serialize( ) тоже не понятно как пихнуть в $.post |
Все тема закрыта!
все дела с кобках каторые нужна убрать var result = $('input').serializeArray(); $.post("engine/jquery/save.php",{result},function(data){ В место ,{result}, нужна писать ,result, |
не получается так... или все дело в формате json?
$(document).ready(function(){ $('#update').click(function(){ var fields = $(":input").serializearray(); $.post('select10.php', {action: 'update', fields, function(data){ },'json'); }); }); не работает( прошу совета... как реализовать отправку всех данных формы методом $.post и получить автоматом все пары в php обработчике? $input=unserialize($_POST['fields']); $input=json_decode($_POST['fields']); все перепробовал( перечитал - но уже каша в голове... нид хелп |
serializearray() Собирает в виде массива.
У вас не правильно составлен код, попробуйте так: $.post('select10.php?action=update', fields, function(data){ },'json'); |
спасибо, что ответили... а дальше? как вы в php "распаковываете" этот массив? буду крайне признателен если хотя бы по двум переменным пример покажете
|
по-моему, если переменная передана так :
Цитата:
$arr = $_GET["arr"]; если мне память не изменяет :) |
только почему get если передается $.post?
уважаемый korner, у вас скрипт заработал... если можно первые строки php |
или post, какая разница
*надо было написать request |
с Request получается, но это надо прописывать 50-60 Requestov для каждого из полей формы...
ну может я и правда тупой, но сколько форумов и документации не прочитайл, я так и не понял... 1) var fields = .. serialize (или serializeArray) (); (упаковываем пары значений поле - значение) 2) $.post (обработчик, fields, function (data) ... передаем эти значения в обработчик 3) как распаковать эти данные? был бы признателен, если у кого есть под рукой ссылка на пример... причем распаковать "автоматом"... чтоб получить в переменную с именем поля значения - без многочисленных $id = $_POST['id']; $nomer = $_POST ['nomer'] у меня в форме может быть до 60 заполненных полей |
Да, понимаю, я тоже раньше думал как это сделать.
Мне нужно было сохранять настройки движка, там тоже было от 1 поля до бесконечности. Есть два варианта сбора данных. Первый самый простой, это сделать функцией extract($_POST); Она переводит все что было передано через пост запрос в переменные с названием. То есть если у вас на станицы пишется на подобие так. <input type="text" name="id" /> <input type="text" name="nomer" /> То в php функция extract($_POST) вернет в переменные и обратится можно будет к ним так: extract($_POST); print $id; //input name="id" print $nomer;//nput name="nomer" Есть второй способ пожалуй самый разумный. Это собирать данный всего с одним массивом. На станицы должно быть написано так: <input type="text" name="save[id]" /> <input type="text" name="save[nomer]" /> Как видно в name я добавил в массив save. В php мы получим только одну переменную $_POST['save'], к которому можно обратится так; $save = $_POST['save']; print $save['id']; //input name="save[id]" print $save['nomer'];//nput name="save[nomer]" Вроде объяснил но на всякий дам пример. Код HTML index.html; <script> function get_post_go(){ var fields = $('input').serializeArray(); $.post('save.php?action=update', fields, function(data){ alert(data.id); // id alert(data.nomer); // nomer },'json'); } </script> <input type="text" name="save[id]" /> <input type="text" name="save[nomer]" /> <input type="submit" value="Отправить" onclick="get_post_go()" /> Код PHP save.php; <?php $save = $_POST['save']; // Получаем результат также можно обработать циклом foreach //Обробатываем данные //$save['id'] //массив id //$save['nomer'] //массив nomer //Выводим результат в формате json echo json_encode(array("id"=>$save['id'],"nomer"=>$save['nomer'])); ?> |
Часовой пояс GMT +3, время: 15:53. |