sql >> データベース >  >> RDS >> Mysql

2 jQueryまたはAjaxを使用したオートコンプリート/提案入力ボックスと、複数のアイテムを含む最初の選択に基づく2番目のボックス

    これが非常に簡単な手順です。メインスケルトンだけを表示します。フラッシュミートの追加はあなたの側にあります。

    2つの<select>があるとします。 ajax.phpで このように:

       <select id="parent">
            <option value="1">value1</option>
            <option value="2">value2</option>
            <option value="3">value3</option>
            <option value="4">value4</option>
        </select>
    
        <select id="child">
    
        </select>
    

    では、何が必要ですか? 2番目の<select>にデータを入力する必要があります その選択のイベントで。

    これがjavascriptの部分です(ajax.php)

    <script type="text/javascript">
                $(function(){                    
                    $('#parent').change(function(){ //on change event
                    var parentVal = $('#parent').val(); //<----- get the value from the parent select
                    $.ajax({
                        url     : 'process.php', //the url you are sending datas to which will again send the result
                        type    : 'GET', //type of request, GET or POST
                        data    : { parentValue: parentVal}, //Data you are sending
                        success : function(data){$('#child').html(data)}, // On success, it will populate the 2nd select
                        error   : function(){alert('an error has occured')} //error message
                    })
                })
    
                })
        </script>
    

    これにより、リクエストがprocess.phpに送信されます

    process.phpが登場しました

    ここでは、2番目の<select>にデータを入力するためのデータが必要です

    ここで、<select>の内部に何が入りますか ?

    <option value="someValue">someText</option>

    次のようなものを出力する必要があります:

        <option value="11">value11</option>
        <option value="12">value12</option>
        <option value="13">value13</option>
        <option value="14">value14</option>
    

    価値とその中のテキストはあなたのニーズで満たされます。

    データベースから取得されるため:

    • 親の選択値はprocess.phpで取得できます $_GET['parentValue']を使用
    • その値を使用して、データベースにクエリを実行します
    • 次に、データベースから返された結果から、ループwhileを使用します 、foreach またはfor (取得する方法によって異なります)、<option value="someValue">someText</option>を作成します 。
    • 完了です!

    複数選択の場合

    生活を少し楽にするために、選択された複数選択 を使用できます。

    アドバイス

    mysql_* 非推奨です。代わりにPDOを使用してください。 へのリンクは次のとおりです。チュートリアル




    1. SQLiteデータベース全体をSQLファイルにエクスポートする

    2. c#のDateTimeとSQLサーバーのDateTimeに違いはありますか?

    3. MySQLデータベース内のすべてのテーブルのレコード数を取得します

    4. MySQL外部キー