2014-11-10 4 views
0

Я застрял с PHP/MySQL вещью ..как разобрать динамическую переменную _POST в PHP

У меня есть динамически созданная форма, и я хочу, чтобы разобрать $ _POST переменных, которые он генерирует. Чтобы быть конкретным, у меня есть запрос в SQL, который генерирует поля в моей форме. Затем мне нужно обработать эти переменные в файле php, где идет действие формы.

Однако я не могу разобрать динамически созданные переменные $ _POST. Ниже мой код:

$sql="just-a-query"; 
$result = mysql_query($sql); 
while ($data = mysql_fetch_array($result)) { 
    ${''.$data['parameterName']}=$_POST[$data['parameterName']]; 
} 

Например, если у меня есть 3 переменные, которые получили через форму значения:

house=1 
tree=3 
car=2 

Я хотел бы сохранить их с помощью PHP, как это:

$house=$_POST['house']; 
$tree=$_POST['tree']; 
$car=$_POST['car']; 

Однако я не могу пройти через это. Он возвращает Undefined index error. Есть предположения?

+0

Уход за публикацией HTML-кода? – Machavity

+1

Что дает вам 'var_dump ($ _ POST)'? Кроме того, я бы использовал '$$ data ['parameterName']' вместо этого другого подхода, но это не должно иметь большого значения. Просто читайте. – sjagr

+0

Обычно проще перебирать '$ _POST' и находить ключи вы хотите действовать. 'foreach ($ _POST as $ key => $ value) {// если $ key - тот, который вам нужен ....}' –

ответ

0

Если вы хотите найти, если переменная определена перед использованием, это так просто, как с помощью isset():

if(isset($_POST[$data['parameterName']])) { 
    ${''.$data['parameterName']}=$_POST[$data['parameterName']]; 
} 

Если с другой стороны, он должен быть определен (вы видите элемент формы) , но тогда это не определяется в обратной передаче. Сначала проверьте, чтобы ваш тип отправки формы был опубликован, а затем проверьте, чтобы вы использовали атрибут name в элементах формы.

0

Благодарю вас за внимание. Моя проблема заключалась в том, что я анализировал неправильные параметры из HTML.

Да, я идиот, и да, var_dump() помог мне понять мою ошибку.

Еще раз спасибо!

Кстати, мой код работал отлично. Ха!

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