sql >> Base de Datos >  >> RDS >> Mysql

ejecutar código PHP al seleccionar un elemento del cuadro combinado

Deberá usar AJAX para hacer esto. He aquí un ejemplo sencillo:

HTML

Solo un simple cuadro de selección, para los propósitos de este ejemplo.

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

Javascript

Voy a usar jQuery aquí, no tienes que hacerlo si no quieres, pero hace que AJAX sea mucho más fácil.

El navegador escuchará un change evento en el cuadro de selección y realice una solicitud AJAX a la URL adecuada. Cuando el servidor devuelve datos, se activará la función de éxito. Lea más sobre .ajax() en la documentación de 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

Aquí estoy recuperando los datos, codificación JSON y enviándolo de vuelta al cliente con el tipo MIME apropiado. No estoy seguro de cómo se conecta a su base de datos MySQL, pero estoy usando DOP aquí.

Tenga en cuenta que las funciones mysql_* son obsoleto .

<?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);
}