2012-07-22 31 views
2

我目前正在使用動態下拉菜單(可靠的選擇框)。我直接從MySQL數據庫拉值(如果你在這裏好奇的是我如何有DB SETUP)。我能夠獲取每個表的值並相應地顯示它們。我遇到的問題是迴應每個selct框的SELECTED值。我有一個創建的JS函數,它會請求postfile.php,然後它會回顯每個框的SELECTED值。我沒有得到任何迴應。我已經檢查過螢火蟲,但沒有發佈任何內容。PHP/JS:動態Dropboxes和回顯SELECTED值

我該如何做這項工作?或者我接近這個錯誤?或者,還有更好的方法? EXAMPLE

工作HTML/PHP

<?php 

include ('includes/dbConnect.php'); 

try { 

    $pdo = get_database_connection(); 

    $sql = "SELECT * 
      FROM `categories` 
      WHERE `master_id` = 0"; 
    $statement = $pdo->query($sql); 
    $list = $statement->fetchAll(PDO::FETCH_ASSOC); 


} catch(PDOException $e) { 
    echo 'There was a problem'; 
} 

?> 

    <select name="main" id="main" size="7" class="update"> 
     <option value="">Select one</option> 
     <?php if (!empty($list)) { ?> 
     <?php foreach($list as $row) { ?> 
     <option value="<?php echo $row['id']; ?>"> 
      <?php echo $row['name']; ?> 
     </option> 
     <?php } ?> 
     <?php } ?> 
    </select> 
    <select name="subc1" id="subc1" size="7" class="update" disabled="disabled" hidden="hidden"> 
     <option value="">----</option> 
    </select> 
    <select name="subc2" id="subc2" size="7" class="update" disabled="disabled" hidden="hidden"> 
     <option value="">----</option> 
    </select> 
    <select name="subc3" id="subc3" size="7" class="update" disabled="disabled" hidden="hidden"> 
     <option value="">----</option> 
    </select> 

JS

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#main).change(function() { 
        if ($(this).val()!=' 
      ') { 
        $("#subc1").load("postfile.php",{main_id: $(this).val()}); 
        //$("#subc1").removeAttr(' 
      disabled hidden '); 
        } 
       }); 
       //code on change of sel_source 
       $('#subc1 ').change(function() { 
        if ($(this).val()!=' 
      ') { 
        $("#subc2").load("postfile.php",{subc1_id: $(this).val()}); 
        //$("#colour").removeAttr(' 
      disabled '); 
        } 

       }); 

       $('#subc2 ').change(function() { 
        if ($(this).val()!=' 
      ') { 
        $("#subc3").load("postfile.php",{subc2_id: $(this).val()}); 
        //$("#colour").removeAttr(' 
      disabled '); 
        } 

       }); 
      }); 
    </script> 

PHP的postfile.php

if(isset($_REQUEST['main_id']) && !empty($_REQUEST['main_id'])) { 

    try { 
    include ('../includes/dbConnect.php'); 

     $pdo = get_database_connection(); 


     $sql = ("select * from `categories` where id='".$_REQUEST['main_id']."' "); 
     $result = $con->prepare($sql); 
     $result->execute(); 
     $number_of_rows = $result->fetchColumn(); 
    }catch(PDOException $e) { 
     echo 'There was a problem'; 
    } 

     if($number_of_rows > 0) { 
      $output = '<option value="">Select</option>'; 
      while($row = mysql_fetch_assoc($result)) {    
        $output .= '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
      } 
     } else { 
      $output = '<option value="">Select</option>'; 
     } 
     echo $output; 
    } 

    if(isset($_REQUEST['subc1_id']) && !empty($_REQUEST['subc1_id'])) { 
     $result = mysql_query("select * from table where id='".$_REQUEST['subc1_id']."' "); 
     if($number_of_rows > 0) { 
      $output = '<option value="">Select</option>'; 
      while($row = mysql_fetch_assoc($result)) {    
        $output .= '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
      } 
     } else { 
      $output = '<option value="">Select</option>'; 
     } 
     echo $output; 
    } 

    if(isset($_REQUEST['subc2_id']) && !empty($_REQUEST['subc2_id'])) { 
     $result = mysql_query("select * from table where id='".$_REQUEST['subc2_id']."' "); 
     if($number_of_rows > 0) { 
      $output = '<option value="">Select</option>'; 
      while($row = mysql_fetch_assoc($result)) {    
        $output .= '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
      } 
     } else { 
      $output = '<option value="">Select</option>'; 
     } 
     echo $output; 
    } 

回答

0

添加提交操作到表單。在功能中使用以下內容:

var Myvar = $('#subc3 :selected').text();