1

ドロップダウン メニューと送信ボタンがあります。英語を選択して送信をクリックすると、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>
4

5 に答える 5

1

オプションタグで値を指定する必要があります。ただし、実行するスクリプトをユーザーに指定させるのは安全ではありません。そのため、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>
于 2013-10-02T12:31:06.933 に答える
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>
于 2013-10-02T12:47:38.697 に答える
0

そのためには、オプションに値を定義する必要があります

<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;
}
于 2013-10-02T12:32:48.707 に答える
0

または、次のように jQuery でフォームのアクションを変更できます。

$('select[name="language"]').change(function(){
   $('form').attr('action' , $(this).val())
});
于 2013-10-02T12:35:59.907 に答える
-1

ジャバスクリプトを使用して

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

デモ

于 2013-10-02T12:35:24.830 に答える