0

別のテーブルからの2番目のドロップダウンリストのクエリの基準としてドロップダウンリストを作成するmysqlテーブルに列がある状況があります。php を使用して 2 番目のドロップダウン リストを選択して、別の入力フォームに渡す方法を教えてください。テーブルデータ間の接続である両方のテーブルに同じ formBarkod 列があります。

4

1 に答える 1

1

これは、javascript の仕事のように思えます。各ドロップダウンに php と mysql を入力することもできますが、最初のドロップダウンでの選択が次のドロップダウンが表示されるようにするには、javascript が必要です。PHP と MySQL は次のようになります。

<?
//Assuming $dbh is a proper mysqli object...
$options = $dbh->query("SELECT * FROM options");

echo '<select id="firstDropdown">';
while($o = $options->fetch_object()) {
    echo '<option value="'.$o->id.'">'.$o->name.'</option>';
}
?>

ドロップダウンごとにこのプロセスを繰り返します。

次に、変更に対応するための JavaScript を作成する必要があります。これを行うのに十分な「純粋な」javascript を知りませんが、jQuery でどのように見えるかを示すことができます。あなたのhtmlが次のようになっていると仮定します:

<select id="firstDropdown">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
</select>
<select id="dropdown1" class="dropdown">
    ...
</select>
<select id="dropdown2" class="dropdown">
    ...
</select>
<select id="dropdown3" class="dropdown">
    ...
</select>

次に、jQueryは次のようになります(もちろん、すべてdocument.ready()にラップされています)

$(".dropdown").hide();

$("#firstDropdown").on("change",function(){
    $(".dropdown").hide();
    var value = $("#firstDropdown").val();
    $("#dropdown"+value).show();
});

基本的な流れは、すべてのセカンダリ ドロップダウンを非表示にすることです。次に、最初のドロップダウンの値が変更されるたびに、2 番目のドロップダウンを再非表示にして、目的のドロップダウンのみを表示します。実際にオンザフライで dom 要素を作成するか、ajax 呼び出しを使用して新しいドロップダウンを取得することにより、これでさらに多くのことができますが、これは基本的な概念をカバーしています。

編集:これはjsfiddle.netの実例です

于 2012-05-13T11:15:25.000 に答える