我在 php 网页中有一个静态组合框。我希望从该组合框中选择一个项目(例如“项目 1”)时,php 执行一个 SELECT 语句以从表 X 中获取名为“项目 1”的字段的值我的数据库。
那怎么办?
您将需要使用AJAX来执行此操作。这是一个简单的例子:
就本示例而言,只是一个简单的选择框。
<select id='items'>
<option value='1'>Item 1</option>
<option value='2'>Item 2</option>
<option value='3'>Item 3</option>
</select>
我将在这里使用 jQuery,如果您不想使用,则不必这样做,但它使 AJAX 变得更容易。
浏览器将侦听change
选择框上的事件并对适当的 URL 执行 AJAX 请求。当服务器发回数据时,将触发成功函数。在 jQuery 文档中了解更多信息。.ajax()
$(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);
}
});
});
});
在这里,我检索数据,对其进行JSON 编码,然后使用适当的 MIME 类型将其发送回客户端。我不确定您如何连接到 MySQL 数据库,但我在这里使用PDO。
请记住,不推荐使用mysql_* 函数。
<?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);
}