Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.09.2011, 08:00
Новичок на форуме
Отправить личное сообщение для dr83 Посмотреть профиль Найти все сообщения от dr83
 
Регистрация: 29.07.2011
Сообщений: 8

только почему get если передается $.post?
уважаемый korner, у вас скрипт заработал... если можно первые строки php
Ответить с цитированием
  #12 (permalink)  
Старый 19.09.2011, 09:07
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

или post, какая разница

*надо было написать request
Ответить с цитированием
  #13 (permalink)  
Старый 19.09.2011, 10:06
Новичок на форуме
Отправить личное сообщение для dr83 Посмотреть профиль Найти все сообщения от dr83
 
Регистрация: 29.07.2011
Сообщений: 8

с Request получается, но это надо прописывать 50-60 Requestov для каждого из полей формы...
ну может я и правда тупой, но сколько форумов и документации не прочитайл, я так и не понял...

1) var fields = .. serialize (или serializeArray) (); (упаковываем пары значений поле - значение)
2) $.post (обработчик, fields, function (data) ... передаем эти значения в обработчик
3) как распаковать эти данные? был бы признателен, если у кого есть под рукой ссылка на пример...
причем распаковать "автоматом"...
чтоб получить в переменную с именем поля значения - без многочисленных
$id = $_POST['id'];
$nomer = $_POST ['nomer']
у меня в форме может быть до 60 заполненных полей

Последний раз редактировалось dr83, 19.09.2011 в 10:13.
Ответить с цитированием
  #14 (permalink)  
Старый 20.09.2011, 18:33
Интересующийся
Отправить личное сообщение для korner Посмотреть профиль Найти все сообщения от korner
 
Регистрация: 26.06.2010
Сообщений: 29

Да, понимаю, я тоже раньше думал как это сделать.
Мне нужно было сохранять настройки движка, там тоже было от 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'])); 

?>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Развелось много СПАМА Skipp Сайт Javascript.ru 15 24.06.2010 15:16
в textarea много javascript, обрамленного js - тегами belbek Серверные языки и технологии 4 05.05.2010 16:58
$.post и удалённый сервер ppp AJAX и COMET 3 18.03.2010 01:15
$.post - ошибка синтаксиса SpartakuS jQuery 5 21.07.2009 15:52
Как сравнить класс, если их много!? Sc@M Events/DOM/Window 16 29.08.2008 12:47