Maison >développement back-end >tutoriel php >Comment créer des listes déroulantes dépendantes remplies dynamiquement à l'aide de PHP et AJAX ?

Comment créer des listes déroulantes dépendantes remplies dynamiquement à l'aide de PHP et AJAX ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-11 00:04:10516parcourir

How to Create Dynamically Populated Dependent Drop-Down Boxes Using PHP and AJAX?

Boîtes déroulantes remplies dynamiquement

Dans cet exemple, nous visons à créer une liste déroulante dynamique dans laquelle les options de la deuxième liste déroulante dépendent de la sélection effectuée dans la première liste déroulante.

Voici une version modifiée de votre code :

tester.php

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
            $(function() {
                $('#stSelect').change(function() {
                    var sel_stud = $(this).val();
                    $.ajax({
                        type: "POST",
                        url: "another_php_file.php",
                        data: 'theOption=' + sel_stud,
                        success: function(whatigot) {
                            $('#LaDIV').html(whatigot);
                        }
                    });
                });
            });
        </script>
    </head>
<body>

    <select name="students">

another_php_file.php

<?php
$server = 'localhost'; //localhost is the usual name of the server if apache/Linux.
$login = 'root';
$pword = '';
$dbname = 'test';
mysql_connect($server,$login,$pword) or die($connect_error); //or die(mysql_error());
mysql_select_db($dbname) or die($connect_error);

//Get value posted in by ajax
$sel_stud = $_POST['theOption'];

//Run DB query
if($sel_stud == "Electronics"){
    $query = "SELECT * FROM `category` WHERE `master` = 1";
}elseif($sel_stud == "Clothes"){
    $query = "SELECT * FROM `category` WHERE `master` = 2";
}else{
    $query = "SELECT * FROM `category` WHERE `master` = 3";
}
$result = mysql_query($query) or die('Fn another_php_file.php ERROR: ' . mysql_error());
$num_rows_returned = mysql_num_rows($result);

//Prepare response html markup
$r = '
        
        <select>
';

//Parse mysql results and create response string. Response can be an html table, a full page, or just a few characters
if ($num_rows_returned > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        $r = $r . '<option value="' .$row['id']. '">' . $row['name'] . '</option>';
    }
} else {
    $r = '<p>No Items</p>';
}

echo $r;

Dans cet exemple, les options dans la deuxième liste déroulante sont renseignés dynamiquement en fonction de la valeur sélectionnée dans la première liste déroulante. Le tableau des catégories est modifié pour inclure un champ principal pour regrouper les options dans la deuxième liste déroulante.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn