我是编程新手,如果这个问题没有多大意义,我很抱歉。我学会了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 元素。有没有办法在连接按钮正下方打印输出?
这不是现代Web编程中的最佳方法,但是由于您是初学者:您可以将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 版本作为渐进式增强。