在PHP中使用GET和POST实现搜索功能

4

我有一个搜索框,其中函数定义如下:

if(isset($_POST['search']))
{
    $orgname= $_POST['search'];
......
}

POST搜索是通过表单进行的。我想知道是否有一种方法可以通过链接接受GET值来使用此函数?例如,如果我使用以下链接:mysite/page?search=value,我可以使用$orgname=$_GET['search']来触发该函数,而不需要提交表单吗?因此将有两种方法从该函数加载数据,一种是通过提交表单,另一种是通过上面提到的链接。这可行吗?我正在尝试这样做,因为我在此页面上有另一个标签,其中我有一个更新按钮,在更新表单数据后用户可以提交表单。但是,在提交表单之后,更新功能有效,但页面重新加载并显示空白表单。我希望在提交该表单后显示已更新的数据。

你可以在<form>中使用GET方法,这是默认行为 => <form method="GET"> - Loenix
1
使用 $_REQUEST 超全局变量 - Minesh Patel
@MineshPatel,在表单提交后,$_REQUEST是重新搜索该页面的最佳方式吗?因为现在,当我提交表单时,页面会刷新并清除数据,所以用户必须手动键入搜索值以查看更新的数据。还是有一种方法可以在提交表单时加载更新的数据,而不离开页面呢? - Yohan Blake
使用Ajax表单提交 - Minesh Patel
2个回答

2
您可以使用 $_REQUEST$_REQUEST — HTTP 请求变量。
一个关联数组,默认情况下包含$_GET$_POST$_COOKIE的内容。

2
如果您想对$_GET$_POST都有相同的行为,可以使用$_REQUEST超级全局变量。
如果您想知道数据来自哪里(是GET请求还是POST请求),只需在两个数组中检查参数是否存在即可。
if(isset($_GET['search'])
{
     //We have a GET request
}
else if(isset($_POST['search'])
{
     //We have a POST request
}
else
{
     //Nothing found
}

“$_REQUEST”是在表单提交后使页面重新搜索值的最佳方法吗?因为现在,当我提交表单时,页面会刷新并擦除数据,所以用户必须手动输入搜索值并再次搜索才能查看更新的数据。或者,在表单提交时有没有一种方式可以加载更新的数据而不离开页面? - Yohan Blake
如果您想要异步搜索,则需要使用AJAX异步运行脚本。 - dimlucas
使用单独的if语句 if(isset($_GET['search']) 可以实现。 - Yohan Blake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接