选择组合框项目时执行PHP代码

时间:2013-08-21 02:50:03

标签: php html mysql

我在php网页中有一个静态组合框。我想从这个组合框中选择一个项目(例如'item 1')时,php执行一个SELECT语句来获取一个名为'item 1'的字段的值表格X在我的数据库中。

如何做到这一点?

1 个答案:

答案 0 :(得分:4)

您需要使用AJAX来执行此操作。这是一个简单的例子:

HTML

就本例而言,只是一个简单的选择框。

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

的JavaScript

我将在这里使用jQuery,如果你不想这样做,你就不必这样做了,但它让AJAX变得更容易。

浏览器将在选择框中侦听change事件,并对相应的URL执行AJAX请求。当服务器发回数据时,将触发成功功能。 Read more about .ajax() in the jQuery documentation.

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

这里我正在检索数据JSON encoding,然后将其发送回具有相应MIME类型的客户端。我不确定你如何连接到MySQL数据库,但我在这里使用PDO

请记住mysql_* functions are deprecated

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