Я не уверен, что понимаю, чего вы пытаетесь достичь, поскольку у нас нет того, что username()
должно вернуть, но вы можете попробовать что-то подобное. Я бы также порекомендовал вам не отображать всю страницу, а использовать что-то подобное, это намного легче читать и поддерживать:
<?php
require_once ( 'username.php' );
if (isset($_POST)) {
$textfield = $_POST['textfield']; // this will get you what was in the
// textfield if the form was submitted
}
?>
<form name="form1" method="post" action="<?php echo($_SERVER['PHP_SELF']) ?">
<p>Your username is: <?php echo(username()) ?></p>
<p>
<label>
<input type="text" name="textfield" id="textfield">
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Submit">
</label>
</p>
</form>
Результаты будут опубликованы на той же странице. Поэтому при первом отображении страницы отображается только пустая форма. Если вы нажмете кнопку «Отправить», поле текстового поля будет в переменной $textfield
, и вы сможете снова отобразить ее, как хотите.
Я не знаю, должна ли функция username()
возвращать вам URL-адрес, куда вы должны отправить результаты, но это то, что вам нужно в атрибуте action
вашей формы. Я записал результат в пример абзаца, чтобы вы увидели, как можно отобразить результат. См. Часть «Ваше имя пользователя ...».
// Редактировать :
Если вы хотите отправить значение, не покидая страницы, вы хотите использовать AJAX. Выполните поиск в jQuery в StackOverflow или в Google.
Возможно, вы захотите, чтобы ваша функция возвращала имя пользователя, а не отображала его. Но если вы абсолютно хотите вывести его из функции, просто вызовите его так: <?php username() ?>
в вашей HTML-форме.
Я думаю, что вам нужно понять процесс клиент-серверных процессов ваших страниц, прежде чем идти дальше. Допустим, приведенный выше пример кода называется form.php.
- Ваш form.php называется.
- form.php генерирует HTML и отправляется в браузер клиента.
- Клиент видит только полученную HTML-форму.
- Когда пользователь нажимает кнопку, у вас есть два варианта: а) позволить браузеру делать все как обычно, поэтому отправьте значения в полях формы на страницу, указанную в действии (в этом случае URL-адрес определяется PHP_SELF, который это текущий page.php). Или б) использовать javascript для отправки этих данных на страницу без обновления страницы, это обычно называется AJAX.
- Страница, в вашем случае она может быть изменена на username.php, затем проверит по базе данных, существует ли имя пользователя, и затем вы захотите перегенерировать HTML, содержащий нужные значения, обратно к шагу 1.