0

検索フォームがあり、検索結果ページが読み込まれると、ユーザーが結果を絞り込むためのジャンプ メニューが上部に表示されます。

ジャンプメニューには、投稿されたフォームから選択した検索条件が表示されます。

ただし、「ポート」ジャンプ メニューで、ブリストルまたはエジンバラを選択すると、結果ページに移動したときにポート メニューにそれらが選択されたように表示されません。それは他のすべてのために...

クルーズ検索ボックスからの私の検索選択コードは次のとおりです

<select name="port" id="port">
<option selected value="%">All Ports...</option>
<option value="Bristol Avonmouth">Bristol Avonmouth</option>
<option value="Edinburgh Leith">Edinburgh Leith</option>
<option value="Glasgow Greenock">Greenock</option>
<option value="Hull">Hull</option>
<option value="Liverpool">Liverpool</option>
<option value="London, Tilbury">London Tilbury</option>
<option value="Newcastle">Newcastle</option>
</select>

結果ページのジャンプ メニュー コードは次のとおりです。

<div id="cac">
    <h3>Sailing from...</h3>
    <p>&nbsp;</p>
    <p>
    <select name="jumpMenu3" id="jumpMenu3" onchange="MM_jumpMenu('parent',this,0)">
    <option value="">Select a port</option>
    <?php
    $ports = array(); 
    mysql_data_seek($cruises, 0);
    while ($row_cruises = mysql_fetch_assoc($cruises)) { 
    if (!in_array($row_cruises['fromport'], $ports)) {
        $ports[] = $row_cruises['fromport'];
    ?>
    <option value="index.php?subj=2&destination=<?php echo urlencode($row_cruises['destination']);?>&departs=<?php echo date('Ym',strtotime($row_cruises['departs']));?>&port=<?php echo urlencode($row_cruises['fromport']);?>"<?php if ($_GET['port'] == $row_cruises['fromport'] OR $_POST['port'] == $row_cruises['fromport']) {echo "selected=\"selected\"";}?>><?php echo $row_cruises['fromport']; ?></option>
    <?php } ;
    }
    if(mysql_num_rows($cruises) > 0) {
        mysql_data_seek($cruises, 0);
        $row_cruises = mysql_fetch_assoc($cruises);
    }
    ?>
    </select>

データベースでポート自体のスペル、大文字と小文字、間隔を確認しました...すべて問題ありません。

たぶん、like またはワイルドカード比較演算子が必要ですか?

どどどど

修正 - 寄港地検索は寄港地テーブルに反しておらず、クルーズ テーブルの出発港に書かれている内容に反しており、間違って入力されたクルーズがいくつかあります...

リッチ :)

4

1 に答える 1

0

置き換えてみてください:
if ($_GET['port'] == $row_cruises['fromport'] OR $_POST['port'] == $row_cruises['fromport'])

if ($_GET['port'] == urlencode($row_cruises['fromport']) OR $_POST['port'] == urlencode($row_cruises['fromport']))

于 2012-05-11T09:49:11.710 に答える