2013-08-20 80 views
0

大多數鏈接選擇似乎都是用JSON完成的,但不幸的是,使用我的數據庫來完成這項工作要方便得多。它幾乎在那裏,但由於某種原因,第二個選擇框未正確加載。相反,它加載了它所在頁面的整個HTML,我不知道爲什麼。jquery/php/database不能正常工作的鏈式選擇框

下面是我得到了什麼(請注意,make_list()和model_list()是我以前建函數返回相應的陣列各自的標準)

的JS:

$(document).ready(function(){ 
    $("select#type").attr("disabled","disabled"); 
    $("select#category").change(function(){ 
     $("select#type").attr("disabled","disabled"); 
     $("select#type").html("<option>loading...</option>"); 
     var id = $("select#category option:selected").attr('value'); 
     $.post("select_type.php", {id:id}, function(data){ 
      $("select#type").removeAttr("disabled"); 
      $("select#type").html(data); 
     }); 
    }); 
    $("form#select_form").submit(function(){ 
     var cat = $("select#category option:selected").attr('value'); 
     var type = $("select#type option:selected").attr('value'); 
     if(cat>0 && type>0) 
     { 
      var result = $("select#type option:selected").html(); 
      $("#result").html('your choice: '+result); 
     } 
     else 
     { 
      $("#result").html("you must choose two options!"); 
     } 
     return false; 
    }); 
}); 

的HTML/PHP:

<form id="select_form"> 
    <div class="clearfix"> 
    <select id="category"> 
     <option value="">Any</option> 
     <?php foreach (make_list() as $make) { ?> 
      <option value="<?php echo $make ?>"><?php echo $make ?></option> 
     <?php } ?> 
     </select> 
    </div> 

    <div class="clearfix"> 
     <select id="type"> 
     <option value="">Any</option> 
     </select> 
    </div> 
</form> 

當第一選擇改變JQuery的應該看看在所謂的「select_type.php」同一個文件夾中的文件。下面是在該文件(奇怪的$ _POST [「身份證」]似乎並沒有被追加到這個文件要麼,儘管它在JS創建):

foreach (model_list($_POST['id']) as $model) { 
    echo '<option value="'.$model.'">'.$model.'</option>'; 
} 
我一直在使用這種資源的

這個項目:http://www.yourinspirationweb.com/en/how-to-create-chained-select-with-php-and-jquery/,它使我獲得了大部分的方式,但不幸的是,數據似乎沒有加載到第二個選擇框中。

感謝您的期待!

回答

0

好吧,所以我想出了這一個。希望這能幫助未來有同樣問題的人。

對文件select_type.php的調用不正確。電話必須是絕對的而不是相對的。由於我使用的是wordpress,所以我只是簡單地將這一行改爲:

$.get("<?php echo get_template_directory_uri() . '/includes/select-model.php'; ?>", {id:id}, function(data){ 

您會注意到我將$ .post更改爲$ .get。我不知道爲什麼後不工作,但似乎工作得很好。我只是使用$ _GET ['id']在select_type.php中檢索我的值。

希望這可以幫助別人!