我正在尝试对Wikipedia进行简单搜索,在其中可以键入要搜索的内容,并在其中选择可以选择语言的位置。我想做的是获取选择值,以便能够以不同的语言进行搜索,因此我只替换了wikipedia.org网址中的语言字符串
(例如,如果我在选择下拉列表中选择法语,则该表单应将我重定向到fr.wikipedia.org,如果我选择英语,则应将我重定向到en.wikipedia.org)
这是我到目前为止尝试过的:
<form action="https://<?php $_POST["language"] ?>.wikipedia.org/w/index.php">
<input name="search" type="text" />
<select name="language">
<option value="en">English</option>
<option value="fr">French</option>
</select>
</form>
现在,提交后,我得到以下网址:https://.wikipedia.org/w/index.php?search = cat
如何将选择值传递给表单操作,以便我可以将其添加到URL的开头?
您当前的脚本不起作用的原因是因为页面加载时(而不是提交表单之后)处理了PHP。您的第一次访问此页面$_POST['language']
未设置,因此表单操作设置为https://.wikipedia.org/w/index.php
。然后,如果您提交表单(get
),则将以https://.wikipedia.org/w/index.php?search = cat&language = zh-CN结尾。
相反,您需要做的是处理页面上的表单提交,然后重定向到Wikipedia。默认情况下,当您提交form
(使用默认的get方法)时,您将最终到达/index.php?search=cat&language=en
。因此,现在您可以读取这些$_GET
参数来构造要重定向到的URL。
<?php
if (isset($_GET) && count($_GET)) {
$language = $_GET["language"];
$search = $_GET["search"];
$action = "https://".$language.".wikipedia.org/w/index.php?search=".$search;
header('Location: '.$action);
}
?>
<form>
<input name="search" type="text"/>
<select name="language">
<option value="en">English</option>
<option value="fr">French</option>
</select>
</form>
另一种方法是设置<form method="post">
,然后在PHP中使用,$_POST
例如:
if ($_POST) {
$language = $_POST["language"];
$search = $_POST["search"];
$action = "https://".$language.".wikipedia.org/w/index.php?search=".$search;
header('Location: '.$action);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句