获取下拉选择的值并在按钮单击时重定向该页面

时间:2013-10-02 12:29:06

标签: php jquery

我有一个下拉菜单和一个提交按钮..我希望当我选择英语语言并且提交然后我重定向页面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>

5 个答案:

答案 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');
        });
    });

demo

答案 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>