使用AJAX和重定向将表单值传递给PHP变量

使用AJAX和重定向将表单值传递给PHP变量,php,jquery,ajax,Php,Jquery,Ajax,用户是否可以在表单中输入值,然后在提交时将页面重定向到一个新表单,并将输入的值存储在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="

用户是否可以在表单中输入值,然后在提交时将页面重定向到一个新表单,并将输入的值存储在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>

一旦用户在
#按位置搜索
中输入值,页面需要重定向到
weather.php
,该值存储在名为
$location
的php变量中


AJAX/JS不是我的强项,因此如果有人能为我指出正确的方向,那就太好了

这只是一种正常的形式,为什么不在
weather.php
页面的重定向后使用
$\u POST

$location = $_POST["custom-location"]; 
正如@Tacticus所指出的,您还需要重定向表单(如果您在JS中还没有这样做的话)。通过在以下表格中添加
action=“weather.php”

<form id="loc-search" method="post" action="weather.php" >
    ...
</form>

...

这只是一种普通形式,为什么不在
weather.php
页面上的重定向后使用
$\u POST

$location = $_POST["custom-location"]; 
正如@Tacticus所指出的,您还需要重定向表单(如果您在JS中还没有这样做的话)。通过在以下表格中添加
action=“weather.php”

<form id="loc-search" method="post" action="weather.php" >
    ...
</form>

...

将参数
action=“weather.php”
添加到表单标记中。然后,单击submit按钮时,您将被重定向到该页面。根据您的方法,在您的情况下,
POST
,输入值将在PHP中的superglobal
$\u POST
数组中可用

在您的示例中,
$location=$\u POST[“自定义位置”]就足够了。请注意,确定目标PHP文档中的数组键的是名称,而不是ID


实现这一点不需要Javascript或AJAX。

在表单标记中添加参数
action=“weather.php”
。然后,单击submit按钮时,您将被重定向到该页面。根据您的方法,在您的情况下,
POST
,输入值将在PHP中的superglobal
$\u POST
数组中可用

在您的示例中,
$location=$\u POST[“自定义位置”]就足够了。请注意,确定目标PHP文档中的数组键的是名称,而不是ID


实现这一点不需要Javascript或AJAX。

如其他答案中所述,您应该修改表单,使其如下所示:

<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>
<?php 
$location = $_POST["custom-location"];
//Interpret data

?>
<?php 
$location = $_GET["custom-location"];
//Interpret data

?>
如果对表单使用GET方法来传递值,则执行相同的操作,只有值将存储在$\u GET全局变量中,因此在使用GET方法的情况下,变量初始化如下所示:

<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>
<?php 
$location = $_POST["custom-location"];
//Interpret data

?>
<?php 
$location = $_GET["custom-location"];
//Interpret data

?>

如其他答案中所述,您应该修改您的表格,使其如下所示:

<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>
<?php 
$location = $_POST["custom-location"];
//Interpret data

?>
<?php 
$location = $_GET["custom-location"];
//Interpret data

?>
如果对表单使用GET方法来传递值,则执行相同的操作,只有值将存储在$\u GET全局变量中,因此在使用GET方法的情况下,变量初始化如下所示:

<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>
<?php 
$location = $_POST["custom-location"];
//Interpret data

?>
<?php 
$location = $_GET["custom-location"];
//Interpret data

?>


这还不够,因为用户不会被重定向到weather.php页面。按我的回答中所述添加标记操作将解决此问题。@如果您是正确的,我假设用户表单通过某个JS调用指向该页面。因为这是一件非常基本的事情,所以我假设OP已经处理了这一点,但这还不够,因为用户不会被重定向到weather.php页面。按我的回答中所述添加标记操作将解决此问题。@如果您是正确的,我假设用户表单通过某个JS调用指向该页面。因为这是一件非常基本的事情,所以我假设OP已经处理好了。