我正在尝试将表单发布到URL,如下所示,但它只是擦除表单,并且在单击提交时不发布任何内容。
有什么想法吗?我看不出有什么不对,所以需要另一双眼睛。
<form class="form-inline" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="code" class="input" placeholder="Enter Passcode Here..">
<button type="submit" class="btn">Submit</button>
</form>
如果我在代码输入中输入12345667890并单击“提交”,我希望显示该URL www.domain.com/index.php?code=1234567890。这不会发生,它只是擦除表单并加载www.domain.com/index.php
答案 0 :(得分:2)
您的表单为method="post"
。
POST数据被编码到HTTP请求的正文中,而不是编码到URL中。它仍然可以被提交表单的服务器端脚本访问。
如果您希望数据显示在网址中,请使用method="GET"
。
(但请参阅the specification了解您应该使用POST或GET的原因并使用它们来决定您应该使用哪个。)
答案 1 :(得分:1)
使用passcode.php
作为文件名,输入12345
的示例,将输出:
按预期http://www.example.com/passcode.php?code=12345
。
以下是经过全面测试和运作的代码:
<form class="form-inline" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="code" class="input" placeholder="Enter Passcode Here..">
<button type="submit" class="btn">Submit</button>
</form>
您必须使用GET
方法来实现此目标,而不是POST
。
要回显网址的完整字符串,请使用以下内容:
<?php
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo $url;
?>
<form class="form-inline" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="code" class="input" placeholder="Enter Passcode Here..">
<button type="submit" class="btn">Submit</button>
</form>
在使用12345
作为输入时,将输出(echo):http://www.example.com/passcode.php?code=12345
答案 2 :(得分:0)
此刻,表单正是您所写的内容。 它将表单提交到同一页面。然后,您不对发布数据执行任何操作。并且脚本只是再次返回相同的html。