Вставить php в html, чтобы сохранить текст в текстовом поле после того, как пользователь отправит значение - PullRequest
3 голосов
/ 21 марта 2012
<html>
<body>

<form action="http://localhost/index1.php" method="post">
    Type your name: <input type="text" name="name" value="<?php echo $_POST['name'];?>">
                    <input type="submit" value="Submit">
</form>

</body>
</html>

То, что я пытался сделать, - это сохранить данные, введенные в текстовое поле, после того, как пользователь введет значение и нажмет кнопку отправки.

Когда я нажимаю кнопку отправки, в текстовом поле появляется уведомление о том, что имя является неопределенным индексом, и я понимаю, почему.$ _POST ['name'] не имеет значения.

Мне просто интересно, есть ли способ сделать это.Я начинающий с php и HTML.

Ответы [ 5 ]

6 голосов
/ 21 марта 2012
<?php
//check whether the variable $_POST['name'] exists
//this condition will be false for the loading
if(isset($_POST['name']){
  $name = $_POST['name'];
}
else{
  //if the $_POST['name'] is not set
  $name = '';
}


?>

<html>
<body>

<form action="http://localhost/index1.php" method="post">
    Type your name: <input type="text" name="name" value="<?php echo $name;?>">
                    <input type="submit" value="Submit">
</form>

</body>
</html>
3 голосов
/ 21 марта 2012

Попробуйте это (при условии, что это index1.php, и вы используете UTF-8 для вашего типа контента)

<?php
$name = isset($_POST['name']) ? $_POST['name'] : null;
?>

<!-- your HTML, form, etc -->

<input type="text" name="name"
    value="<?php echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>">
1 голос
/ 21 марта 2012

Исходя из ответа @ Фила, учитывая, что использование isset не является решением ( EDIT : я ошибаюсь, см. Комментарии), правильная функция - проверять $ _POST как «имя»запись, к которой вы пытаетесь получить доступ:

<?php
$name = null;
if (array_key_exists('name', $_POST)) {
    $name = $_POST['name'];
}
//more condensed : $name = array_key_exists('name', $_POST) ? $_POST['name'] : null;
?>

<!-- your HTML, form, etc -->

<input type="text" name="name"
    value="<?php echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>">

Появляется сообщение с предупреждением PHP, читающее о вашей среде error_reporting в PHP может быть хорошей идеей.

0 голосов
/ 21 марта 2012

Поскольку ваш атрибут действия формы указывает на index1.php, тогда я предполагаю, что данный HTML-код задан в том же index1.php, в этом случае вы должны сделать это

<html>
<body>

<form action="http://localhost/index1.php" method="post">
    Type your name: input type="text" name="name" value="<?php if(isset($_POST['name'])){echo $_POST['name'];}?>
                    input type="submit" value="Submit">
</form>

</body>
</html>

<?php echo isset($_POST['name'])?$_POST['name']:''?> - это еще один способ сделать атрибут значения условным

0 голосов
/ 21 марта 2012

@ Даллас

Вы на правильном пути;Вот примерная форма ( очень грубая и грязная), которая отображает значение отправленного поля POST в его исходном текстовом поле

<form action="thispage.php" method="post">
    <input type="text" name="mytext" value="<?php echo isset($_POST['mytext'])?$_POST['mytext']:''?>" />
    <input type="submit" value="submit"/>
</form>

. Это проверяет, что поле POST mytext, определяется и (если так) возвращает это значение обратно в текстовое поле.Если он не определен, он просто дает пустое значение.

Если он не работает для вас, я бы дважды проверил атрибут name вашего текстового поля, совпадает со значением ключа, который вы ищетев $ _POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...