2012-03-04 3 views
4

Пользователи моего сайта могут создавать пользовательскую форму. Все поля сохраняются в базе данных с уникальным идентификатором. Когда кто-то посещает форму, атрибут Поля «Имя» является поле * ID *, например

<p>Your favorite band? <input type="text" name="field28"></p> 
<p>Your Favorite color? <input type="text" name="field30"></p> 

После отправки формы, я использую PHP для проверки формы, но я не знаю, получить значение $ _POST [поле28] (или любой номер, который имеет поле).

<? 
while($field = $query_formfields->fetch(PDO::FETCH_ASSOC)) 
{ 
$id = $field[id]; 

//this doesn't work!! 
$user_input = $_POST[field$id]; 

//validation comes here 
} 
?> 

Если кто-нибудь может мне помочь, это действительно оценено!

ответ

11

Добавить несколько цитат:

$user_input = $_POST["field$id"]; 
+0

Хорошо, теперь я чувствую себя глупо, спасибо, что работает! – dirk

5

я предлагаю воспользоваться синтаксисом массивов PHP для форм:

<input type="text' name="field[28]" /> 

Вы можете получить доступ к этому в PHP с $_GET['field'][28]

+0

Не знал, что гораздо более приятное решение будет использовать это в следующих проектах. На данный момент уже разработан интерфейс моего веб-сайта со всеми видами jquery-действий, основанными на именах полей формы, поэтому изменение имен полей - это немного хлопот. Любые большие недостатки использования кода, предложенного Янтарем? – dirk

+1

@ Dirk Nope, ничего плохого в решении Amber. Кажется, вы уже можете настроить целевое имя с помощью переменной '$ id', чтобы вы все были настроены. Если бы у вас не было '$ id', мое решение позволило бы вам перебрать' $ _POST ['field'] 'как массив, захватив все значения. –

2

Помните, что вы используете string для первой части input имя, так что попробуйте что-то вроде: $user_input=$_POST['field'.$id];. Кроме того, я хотел бы предложить, называя их в array, чтобы получить все данные:

<?php 
    $user_inputs=array(); 
    while($field=$query_formfields->fetch(PDO::FETCH_ASSOC)) { 
     $id=$field['id']; 
     $user_inputs[]=$_POST['field'.$id]; 
    } 
?> 
Смежные вопросы