2017-01-13 1 views
3

데이터베이스에서 열 (jobTitle)을 반향 출력하는 선택 항목이 있습니다. 다른 html 선택에서 표시하려고하는 변경시 다른 열 (company_name)을 선택하지만 값만 첫 번째 HTML 선택과 관련이 있습니다.MYSQL HTML을 기반으로 선택 옵션

오류가 발생하지 않습니다. 첫 번째 html select 값이 전달되고 있지만 어떤 이유로 두 번째 select의 값을 기반으로 db에서 선택하지 않습니다.

두 번째 SQL 쿼리에 문제가 있다고 생각합니다.

피. 누구든지이 일을하는보다 효과적인 방법을 알고 있다면 알아내는 것이 가장 감사 할 것입니다.

PHP & HTML :

<select name="jobtitle_select" class="jobtitle_select"> 
    <option class="" name="" value="" >-- Job title --</option> 
    <?php 
    $sql = $dbh->prepare("SELECT * FROM jobs_list"); 
    if($sql->execute()) { 
     $sql->setFetchMode(PDO::FETCH_ASSOC); 
    } 
    while($row = $sql->fetch()) { 
     $jobTitle = $row['jobTitle']; 
     echo "<option class='' name='' value='$jobTitle' > $jobTitle </option>"; 
    } // end of while // ?> 
</select> 
<?php 
$jobtitle_select = $_POST['jobtitle_select']; 
if ($jobtitle_select){ 
    $sql = $dbh->prepare("SELECT * FROM jobs_list WHERE company_name = :jobtitle_select"); 
    $sql->bindParam(':jobtitle_select', $jobtitle_select, PDO::PARAM_STR); 
    if($sql->execute()) { 
     $sql->setFetchMode(PDO::FETCH_ASSOC); 
    } 
?>  
<select class="company_name_select" > 
    <option class="" name="" value="" >-- Company name --</option>  
    <?php while($row = $sql->fetch()) { 
     $company_name = $row['company_name']; 
     echo "<option class='' name='' value='$company_name'> $company_name </option>"; 
    } // end of while //   
}?> <!-- end of if --> 
</select> 

JQUERY :

$('.jobtitle_select').change(function(){ 
     $.ajax({ 
      //create an ajax request to load_page.php 
      type: "POST", 
      data:$('.jobtitle_select'),  
      dataType: "html", //expect html to be returned     
      success: function(date){ 
       $('.company_name_select').html(date); 
      } 
     }) 
    }); 

답변

1

귀하의 아약스 호출이 올바르지 않습니다, 또는 더 나은가 완료되지 말한다. url과 게시 된 변수를 이름과 값으로 제공해야합니다.

$('.jobtitle_select').change(function(){ 
    $.ajax({ 
     //create an ajax request to load_page.php 
     url: "load_page.php", 
     type: "POST", 
     data: {jobtitle_select: $('.jobtitle_select').val()},  
     dataType: "html", //expect html to be returned     
     success: function(date){ 
      $('.company_name_select').html(date); 
     } 
    }) 
}); 

하고 load_page.php 파일을 선택의 안쪽 부분 표시하기 위해 데이터베이스와 HTML 코드에서 데이터를 읽을 수있는 코드의 PHP가 있어야합니다

<?php 
$jobtitle_select = $_POST['jobtitle_select']; 
if ($jobtitle_select){ 
    $sql = $dbh->prepare("SELECT * FROM jobs_list WHERE company_name = :jobtitle_select"); 
    $sql->bindParam(':jobtitle_select', $jobtitle_select, PDO::PARAM_STR); 
    if($sql->execute()) { 
     $sql->setFetchMode(PDO::FETCH_ASSOC); 
    } 
?>  

    <option class="" name="" value="" >-- Company name --</option>  
    <?php while($row = $sql->fetch()) { 
     $company_name = $row['company_name']; 
     echo "<option class='' name='' value='$company_name'> $company_name </option>"; 
    } // end of while //   
}?> <!-- end of if --> 
+0

나는 '돈을 같은 페이지로 보내면 URL이 필요하지 않습니다. 기본적으로 아약스는 그것을 같은 페이지로 보냅니다. – bob

+1

위 코드를 함께 사용하면 효과가 있습니다. 같은 페이지로 전화를 보내고 싶다면'success' 함수는'