所以我试图构建一个用户试图猜测随机数的简单游戏。
我遇到的问题是,每次提交表单时页面都会刷新,因此随机数会发生变化。
通过阅读$ _SERVER ['PHP_SELF']上的其他帖子,我认为它不应该仅仅刷新页面的输入值。
但每次提交表格时,我的随机数都会改变。
有没有办法提交表单而不刷新页面。
const
答案 0 :(得分:1)
$_SERVER['PHP_SELF']
是网页的网址,减去域名。
Link3
如果您不想“加载”其他页面,请使用AJAX。
有时人们也会通过在脚本中添加if $_POST['variable']
来使用同一页面。
http://php.net/manual/en/reserved.variables.server.php
您还可以在隐藏输入中将随机数添加到表单中,如下所示:
<?php
function form(){
echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">";
echo "<input type='text' name='user' /><br/>";
echo "<input type='submit' value='submit' />";
echo "<input type='hidden' name='random' value=".rand(1, 4)."/><br/>";
}
if (!empty($_POST['user'])) {
$userinput = $_POST['user'];
$random = $_POST['random'];
echo "input is " . $userinput . " " . "random number is " . $random;
} else {
form();
}
?>
答案 1 :(得分:0)
<form>
。
听起来您正在尝试提交表格而不重新加载。在这种情况下,您需要使用AJAX。也就是说,使用JavaScript提交表单,但不重定向浏览器。
要非常明确:$_SERVER['PHP_SELF']
与您的问题完全无关。使用它作为表单标记的action
属性的值只是告诉浏览器发布到同一页面,而不是其他页面。它仍然执行完整的POST请求,从而重新加载页面。换句话说,如果您的目标是保持同一页面,那么您使用action
属性并不重要;无论你放在那里,你都必须使用JavaScript。