【问题标题】:execute PHP code when selecting a combobox item选择组合框项时执行 PHP 代码
【发布时间】:2013-08-21 02:50:02
【问题描述】:

我在 php 网页中有一个静态组合框。我希望在从该组合框中选择一个项目(例如“项目 1”)时,php 执行一个 SELECT 语句以从一个名为“项目 1”的字段中获取值我的数据库中的表 X。

如何做到这一点?

【问题讨论】:

  • "php 网页" - 可能是 html 网页。对 php 脚本使用 AJAX 请求,该脚本执行该操作并返回一条消息或任何必须的内容。
  • 这需要使用 AJAX 来完成,您需要在单击列表项时进行监听并使用 $.get 获取值,使用 givemethedate.php(示例)从服务器中提取数据。这就是继续这个的方法。
  • 您需要展示您的相关代码(至少选择框和 PHP 代码),并且希望您首先尝试弄清楚这一点。

标签: php html mysql


【解决方案1】:

您需要使用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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2013-02-16
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    相关资源
    最近更新 更多