簡體   English   中英

依賴下拉列表不起作用Mysql Php-返回`Undefined`

[英]Dependent dropdown not working Mysql Php - Returns `Undefined`

我有兩個從MySQL數據庫生成的下拉列表。 第二個下拉列表基於第一個下拉選擇選項。

問題是,我無法生成第二個下拉數據。

我得到的第二個下拉值是Undefined 但是第二個下拉列表中應該包含的值數是正確的。

請指出我在哪里做錯了。 謝謝。

以下是我的代碼:

Index.php(連接)

<?php  
//Create the connection  

$con = mysqli_connect("localhost","root","root","echodeve_mfb_temp") or die("Some error occurred during connection " . mysqli_error($con));  

// Write query

$strSQL = "SELECT bp_id, bp_name FROM mfb_billing";

// Execute the query.

$query = mysqli_query($con, $strSQL);


// Close the connection
//mysqli_close($con);

?>

Index.php(腳本)

  <script>
$(document).ready(function() {

    $("#item_1").change(function () {   

      var group_id = $(this).val();

       $.ajax({
            type: "POST", 
            url: "dropdown_select.php?item_1_id=" + group_id, 
            dataType: "json",
            success: function(data){
                //Clear options corresponding to earlier option of first dropdown
                $('select#item_2').empty(); 
                $('select#item_2').append('<option value="0">Select Option</option>');
                //Populate options of the second dropdown
                $.each( data, function(i, val){    
                    $('select#item_2').append('<option value="' + val.hospital_id + '">' + val.hospital_name + '</option>');
                });
                $('select#item_2').focus();
            },
            beforeSend: function(){
                $('select#item_2').empty();
                $('select#item_2').append('<option value="0">Loading...</option>');
            },
            error: function(){
                $('select#item_2').attr('disabled', true);
                $('select#item_2').empty();
                $('select#item_2').append('<option value="0">No Options</option>');
            }
        })  

    }); 
});

</script>

  </head>

Index.php(HTML)

  <body>
 <label id="item_1_label" for="item_1" class="label">#1:</label>
<select id="item_1" name="item_1" />
    <option value="">Select</option>
    <?php

        while($row = mysqli_fetch_array($query)) { 
            echo '<option value="'.$row['bp_id'].'">'.$row['bp_name'].'</option>'."\n";       
        }
     ?>
</select>

<label id="item_2_label" for="item_2" class="label">#2:</label>
<select id="item_2" name="item_2" />                        
</select>



   </body>

dropdown_select.php(處理PHP)

    <?php

$item_1_id = $_GET['item_1_id'];

//Create the connection  

$con = mysqli_connect("localhost","root","root","echodeve_mfb_temp") or die("Some error occurred during connection " . mysqli_error($con));  

// Write query

$strSQL = "SELECT hospital_id, hospital_name FROM mfb_hospital WHERE bp_id = $item_1_id";

// Execute the query.

$query = mysqli_query($con, $strSQL);

$return_arr = array(); 

while($row = mysqli_fetch_array($query)) { 

    $row_array = array("name" => $row['hospital_name'], 
                       "id" => $row['hospital_id']); 

    array_push($return_arr,$row_array);     
}

echo json_encode($return_arr);

?>  

PHP錯誤准確地告訴您出了什么問題,並且如手冊所述失敗時返回FALSE

由於您的錯誤將$ query描述為布爾值,因此您必須自己檢查幾件事。

首先回顯您的$ strSQL,看看它是否正確,然后嘗試直接在數據庫上執行它。 可能有幾件事,例如列名不正確。

另外,您將返回:

$row_array = array("name" => $row['hospital_name'], 
                       "id" => $row['hospital_id']); 

但是在javascript中,您正在執行以下操作:

$.each( data, function(i, val){    
    $('select#item_2').append('<option value="' + val.hospital_id + '">' + val.hospital_name + '</option>');
});

嘗試這個:

$.each( data, function(i, val){    
    $('select#item_2').append('<option value="' + val.id + '">' + val.name + '</option>');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM