Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Điền vào menu thả xuống HTML / PHP dựa trên lựa chọn thả xuống đầu tiên

bạn có thể tạo một tệp PHP với yêu cầu và gọi nó bằng AJAX.

getSubCategory.php

<?php
$category = "";
if(isset($_GET['category'])){
    $category = $_GET['category'];
}

/* Connect to the database, I'm using PDO but you could use mysqli */
$dsn = 'mysql:dbname=my_database;host=127.0.0.1';
$user = 'my_user';
$password = 'my_pass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$sql = 'SELECT sub_category_name as subCategory FROM t_menu_category WHERE category_name = :category';
$stmt = $dbh->prepare($sql);
$stmt->bindValue(':category', $category);
$stmt->execute();

return  json_encode($stmt->fetchAll());

và thêm một số jquery để bắt khi một danh mục được chọn và yêu cầu máy chủ cung cấp danh mục con tương ứng:

<script>
    $(document).ready(function () {
        $('#item_category').on('change', function () {

            //get selected value from category drop down
            var category = $(this).val();

            //select subcategory drop down
            var selectSubCat = $('#item_sub_category');

            if ( category != -1 ) {

                // ask server for sub-categories
                $.getJSON( "getSubCategory.php?category="+category)
                .done(function( result) {    
                    // append each sub-category to second drop down   
                    $.each(result, function(item) {
                        selectSubCat.append($("<option />").val(item.subCategory).text(item.subCategory));
                    });
                    // enable sub-category drop down
                    selectSubCat.prop('disabled', false);                
                });

            } else {                
                // disable sub-category drop down
                selectSubCat.prop('disabled', 'disabled');
            }
        });    

    });
</script>

cũng thêm một giá trị vào tùy chọn đầu tiên của bạn:

<option value="-1" selected="selected">-- Select Category --</option>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Cách CHÈN VÀO [bảng tạm thời] TỪ [Thủ tục đã lưu trữ]

  2. Rails xác thực tính duy nhất không thành công trên các đầu vào đồng thời

  3. Danh sách các ràng buộc từ Cơ sở dữ liệu MySQL

  4. Tốc độ chèn chậm lại khi bảng phát triển trong mysql

  5. Máy chủ lưu trữ máy chủ MySQL không xác định