用户是否可以在表单中输入值,然后在提交时,将页面重定向到新的页面,并将值输入到存储在PHP变量中的表单中?
这是我的表格代码;
<form id="loc-search" method="post">
<input type="text" id="search-by-location" name="custom-location" value="" placeholder="Sheffield, UK"/>
<input type="submit" id="submit" value=""/>
</form>
用户在#search-by-location
中输入值后,页面需要重定向到weather.php
,并将值存储在名为$location
AJAX / JS不是我强大的西装,所以如果有人能指出我的方向会很棒
答案 0 :(得分:2)
这只是一个普通表单,所以为什么不在$_POST
页面上重定向后使用weather.php
:
$location = $_POST["custom-location"];
正如 @Tacticus 指出你还需要重定向表单(如果你还没有在JS中这样做)。在表单中添加action="weather.php"
:
<form id="loc-search" method="post" action="weather.php" >
...
</form>
答案 1 :(得分:2)
将参数action="weather.php"
添加到表单标记中。然后,当单击提交按钮时,您将被重定向到该页面。根据您的方法,在您的情况POST
中,输入值将在PHP中的超全局$_POST
数组中可用。
在您的示例中,$location = $_POST["custom-location"];
就足够了。请注意,名称而不是ID确定目标PHP文档中的数组键。
实现这一目标不需要Javascript或AJAX。
答案 2 :(得分:0)
如其他答案所述,您应该修改您的表单,如下所示:
<form id="loc-search" method="post" action="weather.php">
<input type="text" id="search-by-location" name="custom-location" value="" placeholder="Sheffield, UK"/>
<input type="submit" id="submit" value=""/>
</form>
在weather.php文件中,您可以从$ _POST全局变量中获取值,如下所示:
<?php
$location = $_POST["custom-location"];
//Interpret data
?>
请注意,您可以使用输入的名称从传递的表单中访问输入标记的值。在html中,您指定以下内容:
<input name="yourname" />
当您想要访问该值时,只需引用他的名称。
$_POST['yourname']
如果你使用GET方法传递值,那么你也这样做,只有值会存储在$ _GET全局变量中,所以在你的情况下使用GET方法,变量初始化看起来像这样:
<?php
$location = $_GET["custom-location"];
//Interpret data
?>