Mysql
 sql >> Base de données >  >> RDS >> Mysql

exécuter du code PHP lors de la sélection d'un élément de la liste déroulante

Vous devrez utiliser AJAX pour faire ça. Voici un exemple simple :

HTML

Juste une simple case de sélection, pour les besoins de cet exemple.

<select id='items'>
    <option value='1'>Item 1</option>
    <option value='2'>Item 2</option>
    <option value='3'>Item 3</option>
</select>

JavaScript

Je vais utiliser jQuery ici, vous n'êtes pas obligé de le faire si vous ne le souhaitez pas, mais cela rend AJAX beaucoup plus facile.

Le navigateur écoutera un change événement sur la zone de sélection et effectuez une requête AJAX vers l'URL appropriée. Lorsque le serveur renvoie des données, la fonction de réussite sera déclenchée. En savoir plus sur .ajax() dans la documentation jQuery.

$(document).ready(function() {
    $('#items').change(function() {
        $.ajax({
            type: 'GET',
            url: 'pageWithPhpCode.php',
            data: {
                itemID: $(this).val()
            },
            dataType: 'json',
            success: function(data) {
                // do whatever here
                console.log(data);
            }
        });
    });
});

PHP

Ici, je récupère les données, Encodage JSON et le renvoyer au client avec le type MIME approprié. Je ne sais pas comment vous vous connectez à votre base de données MySQL, mais j'utilise AOP ici.

Gardez à l'esprit que les fonctions mysql_* sont obsolète .

<?php
if(isset($_GET['itemID'])) {
    $db = new PDO();
    // ... connect to your database, however you do it

    $q = 'SELECT * FROM items WHERE id = :itemid;';
    $stmt = $db->prepare($q);
    $stmt->bindValue(':itemid', $_GET['itemID'], PDO::PARAM_INT);
    $stmt->execute();

    $output = $stmt->fetchAll(PDO::FETCH_ASSOC);

    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($output);
}