Показать сообщение отдельно
  #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'])); 

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