Мне нужна ваша помощь. Я пытаюсь сделать текстовое поле красным, когда есть ошибка в форме …
Это то, что я могу сделать. Но когда я отправляю на передний план, я получаю Undefined Index error_css в форме
if (isset($_POST['submit'])) { if (empty($_POST['username'])) { $error_css='background-color:red'; }
форма
<label for="username">Username:</label> <input id="username" type="text" value="<?php if(isset($_POST['username'])){ echo $_POST['username']; } ?>" name="username" title='Username' />
Спасибо за ваше время…
Попробуйте что-то вроде этого:
<?php $username = ""; $error_css = ""; if (isset($_POST['submit'])) { if(isset($_POST['username'])) $username = $_POST['username']; else $error_css='background-color:red'; } ?> <label for="username">Username:</label> <input id="username" type="text" value="<?php echo $username; ?>" name="username" title='Username' style="<?php echo $error_css; ?>"/>
вы никогда не устанавливаете стиль в теге html и первом, если операторы {if {}} являются избыточными. Должен быть:
<label for="username">Username:</label> <input type="text" <?php if(isset($_POST['username'])) { echo 'value="'.$_POST['username'].'"'; } else { echo 'style="background-color:red"'; } ?> name="username" title='Username' >
Если вы можете, почему бы не посмотреть в такое решение, как плагин проверки jQuery ? Это не полное решение, так как вам по-прежнему нужна какая-то проверка на стороне сервера, но он поможет вам.
форма
<label for="username">Username:</label> <input id="username" type="text" value="<?php echo @$_POST['username']; ?>" name="username" title='Username' style="<?php echo @$error_css; ?>"/>
Ваша переменная $error_css
пуста / не существует.
Я думаю, что 2 случая в начале вашего скрипта никогда не доходят до точки, где $error_css
получает свой контент.