#php #textarea #placeholder
#php #текстовое поле #плейсхолдер
Вопрос:
Я бы хотел, чтобы следующий код был изменен так, чтобы текстовая область имела значение по умолчанию, которое исчезает, когда оно сфокусировано.
if ($txtActive != 'N') {
$value = (isset($_POST['mod_SEF_textarea'])) ? htmlspecialchars($_POST['mod_SEF_textarea']) : "";
echo "<tr>";
echo "<th align='" . $labelAlign . "'></th>";
echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value='tester' rows='$txtRows' cols='$txtCols'>" . stripslashes($value) . "" . "</textarea>";
echo ($txtError) ? "<br /><b style='color: $errorTxtColor;'>$txtError</b>" : '';
// echo "wendy TESTerburger";
echo "</td>";
echo "</tr>n";
Комментарии:
1. Пожалуйста, объясните точно, чего вы хотите.
2. Как мне добавить «текст по умолчанию» в форму php …?? Текст, который отображается в полях ввода, и когда вы нажимаете, чтобы ввести свою информацию, он исчезает …??
3. «Я заменил все < amp; > на [ amp; ], потому что браузер пытается отобразить html-теги». — вы когда-нибудь смотрели на редактор stackoverflow? вы можете пометить области как код…
Ответ №1:
Если я правильно понимаю вопрос, вы бы изменили эту строку примерно так:
$value = (isset($_POST['mod_SEF_textarea'])) ? htmlspecialchars($_POST['mod_SEF_textarea']) : "Default Text";
Итак, если mod_SEF_textarea не был установлен, т. Е. не было значения, выполнялось бы предложение false, которое было бы вашим значением по умолчанию.
Комментарии:
1. Это помещает «текст по умолчанию» в поле, но после выбора он не удаляется…
Ответ №2:
При любом взаимодействии на стороне клиента будет использоваться не PHP, а ваш друг в клиенте — JavaScript.
Я написал плагин jQuery, который делает это в кроссбраузерном режиме.
Если вы нацелены только на браузеры, совместимые с современными стандартами, используйте placeholder
атрибут.
Ответ №3:
Вам нужно использовать placeholder
атрибут. Обратите внимание, что это часть спецификации HTML5, работает только с последними версиями некоторых браузеров. Если вы хотите, чтобы это работало в старых браузерах, вам нужно будет сделать это с помощью Javascript.
echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value='tester' rows='$txtRows' cols='$txtCols' placeholder='Default text'>" . stripslashes($value) . "" . "</textarea>";
Вот пример того, как это делается с помощью Javascript:
echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value='tester' rows='$txtRows' cols='$txtCols' onfocus="if(this.value=='Default value')this.value='';" onblur="if(this.value=='')this.value='Default value';">" . stripslashes($value) . "" . "</textarea>";
Очень просто.
Комментарии:
1. Хорошо, я только что протестировал это в IE и Firefox .. и ничего не вышло! Работает в Chrome, хотя должен быть Html 5…
2. @gav: да, это новое в HTML5.
3. @gav: Я добавил код, чтобы сделать это с помощью Javascript. Протестировано, работает.
4. это просто функциональная страница, то есть содержащая только php, без html, без js… Как мне использовать javascript с моим php-кодом, упомянутым выше …??
5. Хотя я не думал, что это сработает, я попытался вставить JS в то место, где PHP отображает текстовую область…
Ответ №4:
echo "<td><textarea class='SEFTextArea' name='mod_SEF_textarea' id='textarea' value='Comments...' rows='$txtRows' cols='$txtCols' onfocus="if(this.value=='Comments...')this.value='';" onblur="if(this.value=='')this.value='Comments...';">" . stripslashes($value) . "Comments..." . "</textarea>";