2012-01-23 2 views
1

У меня возникла проблема с одним из моих скриптов проверки формы PHP.Сообщение PHP Validation появляется поверх моей пользовательской формы

В принципе, у меня есть форма, что, когда пользователь отправляет информацию, которую он делает проверку проверки (через PHP) и выводит результат (Success, Error1, Error2 и т.д.) с помощью эхо-заявления

Однако, после того, как пользователь Передает форма (действие = та же самая страница, то есть оно заносится в себя), сообщение подтверждения появляется в верхней части формы или рядом с ней. Я хочу, чтобы эхо-сообщение появлялось в форме.

Это то, что сейчас происходит на странице:

Error: Your password is incorrect 

Username: 

Email: 

Password: 

Submit Button 

Это то, что я хочу, чтобы это выглядело как:

Username: 

Email: 

Password: 

Submit Button 

Error: Your password is incorrect 

Кто-нибудь знает, как это исправить?

Вот код:

<form id="username_check" name="username_check" method="post"> 
<tr> 
<td><b>Username:</b></td> 
<td><input name="Username" type="text" class="textfield" id="Username" 
value="<?php echo($_POST['Username']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Email Address:</b></td> 
<td><input name="email_address" type="text" class="textfield" id="email_address" 
value="<?php echo($_POST['email_address']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Password:</b></td> 
<td><input name="PASSWORD" type="password" class="textfield" id="PASSWORD" /> 
</td> 
</tr> 
<td><input type="submit" name="submit" value="Submit" /></td> 
</form> 
<?php 
//If form was submitted 
if (array_key_exists('submit',$_POST)){ 
//Do something 
echo "Form validation here....."; 
} 
?> 
+0

Отправляясь нужен код ... –

ответ

0

Если вы вызываете

echo $error_message; 

перед показом формы, то отображается сообщение перед формой.

Если вы хотите, чтобы сообщение об ошибке после формы просто переместило команду эха после распечатки формы.

0

Похоже, вы эхо из сообщения об ошибке, а затем эхо из формы.

Сделайте это наоборот.

+0

После того как я закрыть форму с У меня есть другой PHP код ниже него, что следует начать, когда форма нажатии кнопки передачи.

0

Не повторяйте ошибку, сохраните ее в переменной и распечатайте ее за печатью формы.

Таким образом, вы также можете проверить каждый раз, если ошибка происходит во время проверки формы, простая проверка, если ошибка-переменная пуста/ложью

2

Это зависит от порядка выполнения кода. Если вы используете IDE, установите контрольную точку перед валидацией и шаг за шагом. В противном случае, я уверен, что нам нужно будет увидеть код, чтобы понять, почему это происходит.

Try:

<form id="username_check" name="username_check" method="post"> 
<table> 
<tr> 
<td><b>Username:</b></td> 
<td><input name="Username" type="text" class="textfield" id="Username" 
value="<?php echo($_POST['Username']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Email Address:</b></td> 
<td><input name="email_address" type="text" class="textfield" id="email_address" 
value="<?php echo($_POST['email_address']); ?>" 
/> 
</td> 
</tr> 
<tr> 
<td><b>Password:</b></td> 
<td><input name="PASSWORD" type="password" class="textfield" id="PASSWORD" /> 
</td> 
</tr> 
<td><input type="submit" name="submit" value="Submit" /></td> 
</table> 
</form> 
<?php 
//If form was submitted 
if (array_key_exists('submit',$_POST)){ 
//Do something 
echo "Form validation here....."; 
} 
?> 
+0

Если вы повторяете код проверки без инструкции if, он все равно отображается в верхней части формы? Я предполагаю, что код, приведенный выше, является очень завуалированной версией того, что вы делаете. Существуют ли какие-либо инкапсулирующие теги div или таблицы, которые могут быть причиной этого и исправлены с помощью CSS или нескольких разрывов строк? – Jason

+2

Собственно, есть твоя проблема. http: // stackoverflow.com/questions/5967564/form-inside-a-table Формы не могут обрабатываться внутри элемента таблицы. – Jason

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