我是编程的新手,很抱歉,如果这个问题没有多大意义。我学会了PHP处理,并且我成功了。但我无法做点什么。 首先来看看代码......
<html>
<body>
Connected to: <?php echo $_GET["name"];?><br>
</body>
</html>
get.php文件:
if (xmlHttp.readyState > 0 && xmlHttp.readyState < 4) {
document.getElementById("tftopic").innerHTML = loadingmessage;
} else if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
document.getElementById("showtopic").innerHTML = xmlHttp.responseText;
document.getElementById("issolved").innerHTML = issolve;
} else {
// do your error handling here
}
输出(连接到$ name)将在空白页面上,没有其他html和css元素。有没有办法在连接按钮下面打印输出?
答案 0 :(得分:0)
它不是现代网络编程的最佳方法,但由于您是初学者:您可以将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),但它更高级。
答案 1 :(得分:0)
网络是“无状态的”,您想要做的就是提交表单而不刷新页面。这可以在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版本作为渐进增强版本。