1

プリティ URL ベース Web を作成していますが、フォーム内の変数の取得に問題があります。localhost/events/1(1 は get variable $_GET['eventID']) のような URL を持っています。以下のようなフォームでeventIDを送信したい

<select name='eventID'>
    <option value='1'>firstEvent</option>
    <option value='2'>secondEvent</option>
    <option value='3'>thirdEvent</option>
</select>

しかし、送信ボタンをクリックして情報をページに送信すると、URLがこれに変わります

localhost/events/?eventID=1

しかし、私は自分のURLをこのようにしたい

localhost/events/1

どうすればこれを達成できますか?

4

3 に答える 3

1

クライアント側でこれを行う場合は、JavaScript のonsubmitイベントを使用して、必要なページにリダイレクトできます。例えば:

<script type="text/javascript">
function yourFunction()
{
    var sel = document.getElementById('eventID');
    if (sel.selectedIndex !== -1)
    {
        window.location.href = '/events/' + sel.options[sel.selectedIndex].value;
    }

    return false;
}
</script>

<form method="get" onsubmit="return yourFunction()">
<select name="eventID" id="eventID">
    <option value="1">firstEvent</option>
    <option value="2">secondEvent</option>
    <option value="3">thirdEvent</option>
</select>
<input type="submit">
</form>
于 2014-12-04T17:09:36.517 に答える
0

ありがとうございます。JavaScriptまたはjqueryを使用しないソリューションが必要ですが、両方がないとこれを行う方法がないようです。この問題を解決するために、最終的にJqueryでコードを書きました。

 <form id="events" method="get">
    <select name='eventID'>
     <option value='1'>firstEvent</option>
     <option value='2'>secondEvent</option>
     <option value='3'>thirdEvent</option>
    </select>
 <input type="button" onclick="document.location.href= '/events/' + form.eventID.value" value="Submit">
 </form>

$('#events').on('submit', function(e){
    e.preventDefault();
    document.location.href= '/events/' + $(this).find('select#sportID').val();
})
于 2014-12-04T19:18:08.270 に答える