gpt4 book ai didi

php - PDO 获取 id 和名称

转载 作者:行者123 更新时间:2023-11-28 23:56:59 24 4
gpt4 key购买 nike

我正在使用 PDO 返回自动选择输入框的联系人姓名列表。PDO ......

$stmt = $db->prepare("SELECT ContactName, ContactID FROM `tblContacts` WHERE ContactName LIKE ? ORDER BY ContactName");

$keyword = '%' . $keyword . '%';
$stmt->bindParam(1, $keyword, PDO::PARAM_STR, 10);
$isQueryOk = $stmt->execute();
$results = array();

if ($isQueryOk) {
$results = $stmt->fetchAll(PDO::FETCH_COLUMN);
} else {
trigger_error('Error executing statement.', E_USER_ERROR);
}

自动选择.....

$("#keyword").keyup(function() {
var keyword = $("#keyword").val();
if (keyword.length >= MIN_LENGTH) {

$.get( "auto-complete.php", { keyword: keyword } )
.done(function( data ) {
$('#results').html('');
var results = jQuery.parseJSON(data);
$(results).each(function(key, value) {
$('#results').append('<div class="item">' + value + '</div>');
})

$('.item').click(function() {
var text = $(this).html();
$('#keyword').val(text);
})

});
} else {
$('#results').html('');
}
});

我需要在选择姓名时获取 ContactID。在这里和谷歌上查看,但对 PDO 是新手,有点困惑

最佳答案

在获取结果时,您使用获取样式参数将其限制在第一列 PDO::FETCH_COLUMN .(见示例 2)

尝试将其更改为

$results = $stmt->fetchAll();

在您的代码片段中,您不会将结果作为 JSON 对象返回。

尝试添加

echo json_encode($results);

之后,您应该能够在 jQuery 脚本中访问 JSON 响应。试试这样改

$('#results').append('<div class="item" data-id="' + value.ContactID + '">' + value.ContactName + '</div>');

完整示例

HTML

<input type="text" name="keyword" id="keyword" />
<div id="results"></div>
<script>
var min_length = 1;
$("#keyword").keyup(function () {
var keyword = $("#keyword").val();
if (keyword.length >= min_length) {
$.get("auto-complete.php", {keyword: keyword}).done(function (data) {
$('#results').html('');
var results = jQuery.parseJSON(data);
console.log(data);
$(results).each(function (key, value) {
$('#results').append('<div class="item" data-id="' + value.ContactID + '">' + value.ContactName + '</div>');
})
$('.item').click(function () {
var text = $(this).html();
console.log($(this).attr("data-id"));
$('#keyword').val(text);
})
});
} else {
$('#results').html('');
}
});
</script>

PHP

// get the keyword
$keyword = filter_input(INPUT_GET, 'keyword', FILTER_SANITIZE_SPECIAL_CHARS);
// instantiate PDO with DNS, Username, Password
$db = new PDO();
$stmt = $db->prepare("SELECT ContactName, ContactID FROM `tblContacts` WHERE ContactName LIKE ? ORDER BY ContactName");
$keyword = '%' . $keyword . '%';
$stmt->bindParam(1, $keyword, PDO::PARAM_STR, 10);
$isQueryOk = $stmt->execute();
$results = array();

if ($isQueryOk) {
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
trigger_error('Error executing statement.', E_USER_ERROR);
}

echo json_encode($results);

关于php - PDO 获取 id 和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com