2012-04-22 26 views
0

カテゴリドロップダウンがあります。ユーザーがドロップダウンから任意のカテゴリを選択すると、2番目のドロップダウンが表示されます。カテゴリに関連する製品の一覧が表示されます(jQuery ajax経由)。例えば自動選択ドロップダウン

ユーザーは、それが同じページになく、GETクエリをリダイレクトする製品のドロップダウンメニューから任意の項目をクリックしてください。..

page.php?category=3&product=6 

すると、そのページ上のユーザー、どのように自動選択カテゴリドロップダウンと製品ドロップダウン?

<label>Category</label> 
    <select id="category"> 
     <option value="0">Please select a category</option> 
     <?php 
      $SQL = "SELECT * FROM category"; 
      $query = mysql_query($SQL); 
      while ($cat = mysql_fetch_assoc($query)) { 
       echo "<option value='{$cat['id']}'>{$cat['name']}</option>"; 
      } 
     ?> 
    </select> 
    <select id="product"> </select> 

    $("#category").change(function() { 
     var category = $(this).val(); 
     $('#product').append($("<option></option>").attr("value","0").text("Please Select Product")); 
     $.getJSON(host + "/ajax_select_product.php?categoryid=" + category, function(data) { 
      $.each (data, function (index, element) { 
       $('#product').append($("<option></option>").attr("value",data[index].id).text(data[index].name)); 
      }); 
     }); 
    }); 

​ 
    $("#product").change(function() { 
     var product = $("#product :selected").val() 
     var category = $("#category :selected").val() 
     window.location = "page.php?category=" + category + "?product=" + product; 
    }); 
+0

@Coderカテゴリと製品のドロップダウンを自動選択すべきか?カテゴリ= X&製品は= X' –

+0

た値に自動選択されましたか? – Coder

+0

どのような価値がありますか?値は、ユーザーがドロップダウンから選択したものに応じて何でもかまいません。たとえば、カテゴリから「Apple」を選択し、2番目のドロップダウンがajax経由で表示されます。製品ドロップダウンから "Ipad"を選択し、次にページにリダイレクトします。 php?category = x&product = x' - あなたが選択したものを覚えておく必要があります –

答えて

1

次のように設定できます。 page.phpがpage.php 'にリダイレクトするとき

<label>Category</label> 
    <select id="category"> 
     <option value="0">Please select a category</option> 
     <?php 
     $currentCategory = 0; 
     $curretProduct =0; 

     if (!empty($_GET['category'])) { 
      $currentCategory = $_GET['category']; 
     } 

     if (!empty($_GET['product'])) { 
      $currentProduct = $_GET['product']; 
     } 
      $SQL = "SELECT * FROM category"; 
      $query = mysql_query($SQL); 
      while ($cat = mysql_fetch_assoc($query)) { 
       if ($cat['id'] == $currentCategory) { 
       echo "<option value='{$cat['id']}' selected=\"selected\">{$cat['name']}</option>"; 
       } else { 
       echo "<option value='{$cat['id']}'>{$cat['name']}</option>"; 
       } 
      } 
     ?> 
    </select> 
    <select id="product"> </select> 
    var currentProduct = "<?php echo $currentProduct; ?>"; 
    $("#category").change(function() { 
     var category = $(this).val(); 
     $('#product').append($("<option></option>").attr("value","0").text("Please Select Product")); 
     $.getJSON(host + "/ajax_select_product.php?categoryid=" + category, function(data) { 
      $.each (data, function (index, element) { 
       if (data[index].id == currentProduct) { 
        $('#product').append($("<option></option>").attr("value",data[index].id).attr("selected", "selected").text(data[index].name)); 
       } else { 
        $('#product').append($("<option></option>").attr("value",data[index].id).text(data[index].name)); 
       } 

      }); 
     }); 
    }); 

​ 
    $("#product").change(function() { 
     var product = $("#product :selected").text() 
     var category = $("#category :selected").text() 
     window.location = "page.php?category=" + category + "?product=" + product; 
    }); 
+0

製品とカテゴリのヌル制御をチェックする必要があります。 PHPの値を使ってjavascript変数を設定することができます。その後、javascript側でiterationをチェックすることができます。 –

+0

ありがとうございます。 JavaScriptコードは別ファイルになります。私は 'var currentProduct = "<?php echo $ currentProduct;?>"; " page.phpファイル –

+0

では、body onload.Forexampleにjavascript関数を追加できます。 この関数は、currentProductパラメータで上記のように実装した実装を呼び出します。あるいは、グローバルJavaScript変数currentProduct = "<?php echo $ currentProduct;?>"; page.phpの一番上にあり、それを次のjsファイルで使うことができます –

関連する問題