gpt4 book ai didi

php - Select2 Ajax不匹配结果

转载 作者:行者123 更新时间:2023-11-29 11:47:33 25 4
gpt4 key购买 nike

我的 Select2 表单使用 ajax 从数据库加载结果,但在前端,select2 搜索返回所有结果,而不是特定于搜索词的结果。经过一些研究后,我意识到匹配器必须位于服务器端,但我似乎无法让它工作。这是我的代码

查询数据库并返回json数据的代码

<?php

$servername = "localhost";
$username = "myusername";
$password = "mypassword";

try {
$conn = new PDO("mysql:host=$servername;dbname=mydatabase", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}



// strip tags may not be the best method for your project to apply extra
layer of security but fits needs for this tutorial
$search = strip_tags(trim($_GET['q']));

// Do Prepared Query
$query = $conn->prepare("
SELECT * FROM (
SELECT wp_terms.name
FROM wp_terms
JOIN wp_term_taxonomy
ON wp_term_taxonomy.term_id = wp_terms.term_id
WHERE taxonomy = 'job_listing_region'
AND count = 0
) as T"
);

// Add a wildcard search to the search variable
$query->execute(array(':search'=>"%".$search."%"));


// Do a quick fetchall on the results
$list = $query->fetchall(PDO::FETCH_ASSOC);

// Make sure we have a result
if(count($list) > 0){
foreach ($list as $key => $value) {
$data[] = array('id' => $value['name'], 'text' => $value['name']);
}
} else {
$data[] = array('id' => '0', 'text' => 'No Products Found');
}


// return the result in json
echo json_encode($data);

我的jquery

<script>
jQuery(function($) {
$(document).ready(function() {
function matchStart (term, text) {
if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) {
return true;
}

return false;
}
$( "#regions1" ).select2({
ajax: {
url: "/ajax/connect.php",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term // search term
};
},
processResults: function (data) {
return {
results: $.map(data, function(obj) {
return { id: obj.id, text: obj.text };

})

};

}


},
minimumInputLength: 3,
width: "300px",
placeholder: "Please Select Up To Four Additional Cities"

});

});
});
</script>

这是我的 json 结果的示例

[{"id":"Abanda, AL","text":"Abanda, AL"},{"id":"Abbeville, AL","text":"Abbeville, AL"},{"id":"Adak, AK","text":"Adak, AK"},

Search term not matching results

最佳答案

您在 sql 语句中没有提到 like 条件。

你的sql应该是这样的

$query = $conn->prepare("
SELECT * FROM (
SELECT wp_terms.name
FROM wp_terms
JOIN wp_term_taxonomy
ON wp_term_taxonomy.term_id = wp_terms.term_id
WHERE taxonomy = 'job_listing_region'
AND count = 0 AND search_column LIKE ? <==== this line
) as T"
);

$query->execute(array("%".$search."%"));

关于php - Select2 Ajax不匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670241/

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