Как мне добавить «текст по умолчанию» в форму php

#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>";