我有一个表格,取决于<select>
我想发送到不同页面的框的选定值。
我不知道执行此操作的最佳方法,但我认为最好的方法可能是让中间页面始终发布到,然后让中间页面检查从<select>
框中发送的值并将 POST 值转发到不同的页面取决于它是什么。如果这是最好的方法,我该怎么做?如果没有,最好的方法是什么?
谢谢!!
这肯定是用户兼容性的最佳方法。
您可以使用 HTTP 重定向标头来执行此操作,例如
header("Location: http://www.example.com/");
应该在页面有任何输出之前调用它。
这样,用户在按下前进/后退按钮时甚至不会登陆中间页面。
我看到的唯一其他选择是使用 javascript 来更改表单目标或类似这些行的东西,但这有一些警告(必须启用 javascript,更复杂的代码,重定向不应该真的发生在页面视图中)
这是个好办法。另一种方法是使用Javascript来拦截点击,重写action
表单的属性和submit()
它。
但是对于您的 PHP:
第一页:
<form action="intermediary.php" method="post">
<input id="submitTo">
<select value="1">goToFirstPage</select>
<select value="2">goToSecondPage</select>
</input>
</form>
第二页:
<?php
$url = "";
if($_POST["submitTo"] == "1") $url = "http://mysite.com/firstPage.php";
if($_POST["submitTo"] == "2") $url = "http://mysite.com/secondPage.php";
header ("Location: $url");
?>
不要将实际的 URL 放在你的首页,否则你会遇到大量的安全问题。
我会使用 javascript 来更改表单的目标
如果你真的想使用 php,你应该尝试curl:
javascript
function form_submitted(){
switch(document.myform.select_name.value){
case 'whatever':
document.myform.target.value = "whatever_you_need";
break;
case 'whatever2':
document.myform.target.value = "whatever_you_need_2";
break;
}
}
然后要么将此函数分配给具有“onSubmit”属性的表单,要么有一个按钮(而不是提交按钮)调用该函数并在函数末尾添加 document.myform.submit()。