У меня проблема с формой HTML и php.
Я пытаюсь сделать значение по умолчанию для поля формы-текста заданной строкой. Для этого я использую ссылку. Однако всякий раз, когда я пытаюсь поместить строку в форму с помощью PHP или ссылок в любой форме или форме формы, добавляется только первое слово.
Вот картина для описания ситуации:
Кто-нибудь знает, почему это происходит, и / или способ обойти эту проблему?
Фактический код:
<?php Echo "<input type=\"text\" name=\"Address\" value=\"one two three\"><br>"; ?> <?php $str ="one two three"; Echo "<input type=\"text\" name=\"Address\" value=" . $str . "><br>"; ?> <input type="text" name="Address" value=<?php echo "one two three";?>><br> <input type="text" name="Address" value=<?php $str = "one two three"; echo $str;?>><br> <input type="text" name="Address" value="one two three"><br>
Вы не цитируете повторяющиеся слова. В основном вы это делаете:
<input type="text" value=one two three />
Но вам нужно это сделать:
<input type="text" value="one two three" />
Просто добавьте «вокруг» PHP.
Кстати: вам нужно избегать их, если вы не хотите получать XSSed. Эти атаки довольно страшны. Читайте об этом здесь: https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
Проблема заключалась в quotes
когда вы делали эхо на php, вам нужно просто процитировать его, чтобы он работал.
Html понимал, что two
и three
были дополнительными параметрами <input>
потому что он не был указан в полученном html.
Используйте этот способ:
<?php Echo "<input type=\"text\" name=\"Address\" value=\"one two three\"><br>"; ?> <?php $str ="one two three"; Echo "<input type=\"text\" name=\"Address\" value=" . $str . "><br>"; ?> <input type="text" name="Address" value='<?php echo "one two three";?>'><br> <input type="text" name="Address" value='<?php $str = "one two three"; echo $str;?>'><br> <input type="text" name="Address" value="one two three"><br>
Это потому, что вы не устанавливаете его в «" или «отметках» для html.
2. Линия: … \ "Адрес \" значение = ". $ Str.">
…. ", например, выходы для атрибута value: value = one two three Интерпретатор теперь считает, что два и три являются собственностью, а не частью стоимости. То же самое и с другими случаями.
Я думаю, что в этом значении атрибут типа ввода имеет строку с пробелом. HTML рассматривает его как отдельные атрибуты входного текста.
Чтобы решить эту проблему, вы можете использовать одиночную кавычку в начале и конце атрибута value. Посмотрите этот пример. Надеюсь, вам понравится. Я только что изменил ваш код.
<?php echo "<input type=\"text\" name=\"Address\" value=\"one two three\"><br>"; ?> <?php $str ="one two three"; echo "<input type=\"text\" name=\"Address\" value='" . $str . "'><br>"; ?> <input type="text" name="Address" value='<?php echo "one two three";?>'><br> <input type="text" name="Address" value='<?php $str = "one two three"; echo $str;?>'><br> <input type="text" name="Address" value="one two three"><br>
В этом случае он получит One Two Three в каждом текстовом поле.