Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Code ausführen, wenn ein Combobox-Element ausgewählt wird

Sie müssen AJAX verwenden um dies zu tun. Hier ist ein einfaches Beispiel:

HTML

Nur ein einfaches Auswahlfeld für die Zwecke dieses Beispiels.

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

JavaScript

Ich werde hier jQuery verwenden, Sie müssen nicht, wenn Sie nicht wollen, aber es macht AJAX viel einfacher.

Der Browser wartet auf eine change event auf das Auswahlfeld und führen Sie eine AJAX-Anfrage an die entsprechende URL durch. Wenn der Server Daten zurücksendet, wird die Erfolgsfunktion ausgelöst. Lesen Sie mehr über .ajax() in der jQuery-Dokumentation.

$(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

Hier rufe ich die Daten ab, JSON-Codierung es und sendet es mit dem entsprechenden MIME-Typ an den Client zurück. Ich bin mir nicht sicher, wie Sie sich mit Ihrer MySQL-Datenbank verbinden, aber ich verwende g.U. hier.

Denken Sie daran, dass mysql_*-Funktionen veraltet .

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