我有一个下拉菜单和一个提交按钮..我希望当我选择英语语言并且提交然后我重定向页面English.php。
这是我的代码..但它无法正常工作....
<?php $lang=$_REQUEST['language']; ?>
<form action="<?php echo $lang; ?>" method="Post">
<select name="language">
<option>select one</option>
<option>English</option>
<option>Hindi</option>
</select>
<input type="submit">
</form>
答案 0 :(得分:2)
您需要在选项标记中指定一个值。但是,让用户指定要运行的脚本是不安全的。因此,您应该检查PHP代码中表单中的值,并确定将用户发送到何处。
<?php
$lang=$_REQUEST['language'];
switch ($lang) {
case 'english':
$page = 'english.php';
break;
case 'hindi':
$page = 'hindi.php';
break;
default:
$page = null;
}
if ($page) {
header("Location: ".$_POST['language']);
exit;
}
?>
<form method="post">
<select name="language">
<option value="">select one</option>
<option value="english">English</option>
<option value="hindi">Hindi</option>
</select>
</form>
答案 1 :(得分:1)
为此,您必须为选项
定义值<select name="language">
<option value="">select one</option>
<option value="English.php">English</option>
<option value="Hindi.php">Hindi</option>
</select>
以上是HTML
代码现在当表单发布时重定向到所选选项,如下所示。
if(isset($_POST['submit']))
{
header("Location: ".$_POST['language']);
exit;
}
答案 2 :(得分:0)
使用javascript
html代码:
<select name="dropdpown" size="1" id="select-anchor">
<option value="#link">foo</option>
<option value="#link">bar</option>
</select>
脚本代码:
$(document).ready(function () {
$('#select-anchor').change( function () {
var targetPosition = $($(this).val()).offset().top;
$('html,body').animate({ scrollTop: targetPosition}, 'slow');
});
});
答案 3 :(得分:0)
或者您可以通过jQuery更改表单的操作,例如:
$('select[name="language"]').change(function(){
$('form').attr('action' , $(this).val())
});
答案 4 :(得分:0)
请找到更详细的方法
<script language="javascript">
function goPage() {
if (document.frm.language.value != '') {
document.frm.action = document.frm.language.value;
document.frm.submit();
}
}
</script>
<form name="frm" method="get">
<select name="language">
<option value="">select one</option>
<option value="English.php">English</option>
<option value="Hindi.php">Hindi</option>
</select>
<input type="button" value="Go" onclick="javascript:goPage()" />
</form>