0

2つのチェーンされた選択ボックスがあり、最初のドロップダウンの値に基づいて2番目のドロップダウンが表示され、うまく機能します。私は現在、ユーザーがボタンをクリックしたときに選択ボックスの値を取得して表示するphp関数を持っています。今私が抱えている課題は、ボタンをクリックして選択したオプションを表示する必要があるためです。ページは更新されますが、ユーザーがページを更新せずに選択したものを確認できるように、選択したオプションを取得して表示できる方法が必要です。 。私はこれがajaxを使用して達成できることを知っていますが、私はajaxに不慣れであり、オンラインで非常に多くの同様の問題をチェックしましたが、これを機能させる方法を完全には理解していません。これに関するアドバイスは大歓迎です。選択した値の取得と表示を実行する私のphp関数を以下で参照してください

function OutputCategory() {
    if (isset($_POST['drop_2']) && ($_POST['btn_confirm']) && ($_POST['drop_1'])) {
        $drop2 = $_POST['drop_2'];
        $drop1 = $_POST['drop_1'];

        $cat_name = mysql_query(sprintf("SELECT subcategory_name FROM subcategory WHERE subcategory_id = '%s'", mysql_real_escape_string($drop2)));
        while ($cat_name1 = mysql_fetch_array($cat_name)) {
            $cat_name2 = $cat_name1['subcategory_name'];
        }

        $cat = mysql_query(sprintf("SELECT category_name FROM category WHERE category_id = '%s'", mysql_real_escape_string($drop1)));
        while ($cat1 = mysql_fetch_array($cat)) {
            $cat_2 = $cat1['category_name'];
        }
        echo "You selected Category:";
        echo $cat_2." >> ".$cat_name2;
    }
    elseif(isset($_POST['drop_1']) && ($_POST['btn_confirm'])) {
        $drop1 = $_POST['drop_1'];
        $cat = mysql_query(sprintf("SELECT category_name FROM category WHERE category_id = '%s'", mysql_real_escape_string($drop1)));
        while ($cat1 = mysql_fetch_array($cat)) {
            $cat_2 = $cat1['category_name'];

            echo "You selected Category:";
            echo $cat_2;
        }
    }
}​
4

1 に答える 1

-2

次のように、ajax呼び出しをselectにバインドする必要があります。

$('#select1_id').on('change', function() {
  $.ajax({
    type: 'GET',
    data: {
      'select1_val': $(this).val()
    },
    url: 'some_page.php',
    success: function( data ) {
      $select2 = $('#select2_id');
      $select2.empty();      

      $(data.options).each(function(i,option){
        // append option to $select2
      });
    } 

  });
});

次に、「some_page.php」で、次のようになります。

if( $_GET['select1_val'] ) {

  // get the select 2 vals, put them into an $array
  json_encode(array('options' => $array )); exit;

}

...これはもちろん非常に単純な例ですが、あなたはその考えを理解していると確信しています

乾杯、

于 2012-10-15T19:31:44.387 に答える