Я новичок в программировании, поэтому извините, если этот вопрос не имеет особого смысла. Я изучил обработку PHP, и мне это удалось. Но я не могу что-то сделать.
Сначала взгляните на код …
<body>
<form action="get.php" method="get">
Username: <input type="text" name="name"><br>
<input type="submit"value="Connect" class="btn">
</form>
<>
</body>
</html>
И файл get.php:
<html>
<body>
Connected to: <?php echo $_GET["name"];?><br></body>
</html>
Вывод (связанный с $ name) будет на пустой странице, без других элементов html и css. Есть ли способ напечатать вывод прямо под кнопкой подключения?
Это не лучший подход в современном веб-программировании, но, поскольку вы новичок: вы можете объединить логику подключения PHP с HTML в один и тот же файл.
<!DOCTYPE html>
<html>
<body>
<form method="get">
Username: <input type="text" name="name" />
<input type="submit" value="Connect" class="btn" />
</form>
<?php
if (isset($_GET["name"])) {
echo "Connected to: " . $_GET["name"];
}
?>
</body>
</html>
Обратите внимание, что я опустил action="..."
, чтобы нацелиться на текущую страницу.
Кстати, хорошим подходом будет отделить бизнес-логику от визуальных компонентов (я рекомендую вам прочитать о шаблоне проектирования MVC).
Кроме того, если вы хотите избежать обновления всей страницы, вы можете использовать JavaScript и AJAX (я рекомендую вам прочитать о jQuery), но это немного сложнее.
Сеть «не имеет состояния», и вам кажется, что вы должны отправить форму без обновления страницы. Это можно сделать на стороне клиента в JavaScript. Следующее, например, использует jQuery для того, чтобы сделать JS меньшим по размеру, но можно (возможно, следует) сделать это на обычном JS.
<html>
<body>
<form action="get.php" method="get" id="the-form">
<label for="name">Username: <input type="text" id="name" name="name">
<br>
<input type="submit"value="Connect" class="btn">
</form>
<div id="response">
<?php
if(isset($_GET['name']))
{
include('get.php');
}
?>
</div>
</body>
</html>
<script src="path/to/jquery.min.js"></script>
<script>
$(#the-form).submit(function(event)
{
event.preventDefault();
$.ajax({
url: 'get.php',
type: 'get',
data: $("#the-form").serialize(),
success: function(data)
{
$('#response').append(data);
}
});
});
</script>
Если вас не беспокоит обновление страницы, ответ Reflection — это то, что вы ищете. Тем не менее, вы можете использовать как бесплатную версию JS / ajax в качестве запасного варианта, так и версию AJAX в качестве прогрессивного улучшения.