0

Python CGI を使用してデータベースにクエリを実行する小さな Web アプリを構築しています。ロジックは次のとおりです。HTML フォーム - Python CGI - SQL クエリ - python cgi が結果を出力します。

現時点では機能しますが、フォームの作成に行き詰まっています。私がやりたいことは、最初のフォームの結果に従って 2 番目のフォームに自動入力することです。例:

最初のドロップダウン 1 つのオプション: 車、オートバイ、バス、電車。
2 番目のドロップダウン: 車を選択した場合は、車のオプションのみを播種します。電車の場合、電車のオプションのみ...

で作る方法SQL ('WHERE type = 'car'')は知っていますが、html フォームに入力する方法がわかりません。

私はフレームワークを使用しておらず、HTML、Python (php の代わり)、および Postgresql のみを使用しています。

4

1 に答える 1

1

ajax を使用する必要があります。最初の選択が変更されたら、選択した値を、リクエストを処理して結果をページに返すリモート python スクリプトに渡す必要があります。この時点で、javascript を介して 2 番目の選択を入力する必要があります。
データは単純な html または json 形式にすることができます。これは、jquery と ajax を使用した例です ( jQuery ライブラリを含めることを忘れないでください):
html:

<form action="" method="post">
    <select class="changeStatus" name="changeStatus">
            <option value="0">Car</option>
            <option value="1">Motorcycle</option>
            <option value="2">BUS</option>
    </select>

</form>

JavaScript:

<script>
$('document').ready(function(){
//  change event handler
$('select.changeStatus').change(function(){
    // You can access the value of your select field using the .val() method
    //alert('Select field value has changed to' + $('select.changeStatus').val());
    // You can perform an ajax request using the .ajax() method
    $.ajax({
          type: 'GET',
          url: 'your_script_python.py', // This is the url that will be requested

          // select value available inside your_script_python.py
          data: {selectFieldValue: $('select.changeStatus').val()},

          // on success: populate your second select.
          success: function(html){ 
            alert('data passed: ' + html);
           },
          dataType: 'html' // or json 
    });

});
});
</script>
于 2013-05-18T11:19:02.360 に答える