2010-04-04 8 views
0

Ниже приведен код, который отлично подходит для обработки ошибок для текстовых полей в моей контактной форме, но как мне получить этот же метод для работы с раскрывающимися списками и текстовыми полями?Обработка ошибок в контактной форме php

<input type="text" name="name" value="<?php if($errors){echo $name;} ?>" id="name" size="30" /> 

Например:

<textarea name="message" value="<?php if($errors){echo $message;} ?>" id="message" rows="10" cols="40"></textarea> 

не работает.

ответ

1

Это, как вы должны сделать INPUT: это похоже на то, что у вас есть, но вы действительно должны избегать предоставленного пользователем контента htmlentities (или htmlspecialchars и т. д.) в случае, если в тексте будут указаны цитаты, скобки и т. д., которые будут интерпретироваться как HTML в браузере. Это просто хорошая практика.

<input type="text" name="name" id="name" size="30" 
    value="<?php if ($errors) { echo $name; } ?>" /> 

Это, как вы должны сделать TEXTAREA: поместить содержимое между текстовой открытия/закрытия тегов. И не забудьте также избежать этого.

<textarea name="message" id="message" rows="10" cols="40" 
    ><?php if ($errors) { echo htmlentities($message); } ?></textarea> 

Так вы можете обрабатывать тег SELECT. Я выделил код для удобочитаемости, чтобы вы могли понять, что происходит. В основном вам нужно вывести selected="selected" в элемент OPTION, который вы хотите выбрать.

<select> 
    <option value = "val1" 
    <?php if ($error && ($selval=="val1")) { echo 'selected="selected"'; } ?> 
    > 
    Option Label 1 
    </option> 
    <option value = "val2" 
    <?php if ($error && ($selval=="val2")) { echo 'selected="selected"'; } ?> 
    > 
    Option Label 2 
    </option> 
    ... (additional <option> tags here) ... 
</select> 
+0

Блок выбора, работающий также, спасибо! – topSearchDesign

3

В случае текстового поля вы должны поместить значение по умолчанию в сам тег. Например:

<textarea name="message" id="message" rows="10" cols="40"><?php if($errors){echo $message;} ?></textarea> 
+0

textarea отлично работает сейчас, спасибо! – topSearchDesign

+0

Кроме того, поскольку вы, вероятно, захотите узнать о поле выбора, это будет одно и то же (вставьте сообщение в тег опции). –

0

для текстовой области:

textarea name="message" id="message" rows="10" cols="40"><?php if($errors){echo $message;} ?></textarea> 

Для выпадающего списка, вам нужно сделать что-то вроде этого:

<select> 
    <option value = "1" <? echo ($errror && $myposted_val == "1") ? "selected = \"selected\"" : ""; ?></option> 
</select> 
Смежные вопросы