2013-08-20 2 views
0

대부분의 연결 선택 항목은 JSON으로 수행되는 것으로 보입니다.하지만 유감스럽게도 내 데이터베이스를 사용하여이 작업을 수행하는 것이 훨씬 편리합니다. 거의 다 왔지만 어떤 이유로 두 번째 선택 상자가 제대로로드되지 않습니다. 대신 HTML이 페이지의 전체 HTML을로드하고 있는데 이유가 확실하지 않습니다.jquery/php/database가 작동하지 않는 체인 선택 상자

$(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; 
    }); 
}); 

: 여기

내가있어 무엇

JS()이 make_list()와 model_list을 (주 각각의 기준에 적합한 배열을 반환 내가 이전에 내장 된 기능은 다음과 같습니다) 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 [ 'ID'] 그것이 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에 대한 호출이 잘못되었습니다. 호출은 상대가 아닌 절대적이어야합니다.

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

당신은 내가 $ 갔지에 $ .post를 변경할 것을 알 수 있습니다 : 나는 워드 프레스를 사용하고 있기 때문에 단순히 이것에 라인을 변경했습니다. 왜 게시물이 작동하지 않았는지 모르겠지만 제대로 작동하는 것 같습니다. 나는 단지 $ _GET [ 'id']를 사용하여 select_type.php에서 값을 가져옵니다.

희망이 있으면 도움이됩니다.