gpt4 book ai didi

php - jquery select2 : error in getting data from php-mysql

转载 作者:行者123 更新时间:2023-12-01 04:03:28 25 4
gpt4 key购买 nike

我正在本地计算机上测试 select2 插件。但由于某种原因。它不是从数据库收集数据。

我尝试了多次,但未能找到问题所在。

下面是代码。

<div class="form-group">

<div class="col-sm-6">
<input type="hidden" id="tags" style="width: 300px"/>
</div>
</div>

<script type="text/javascript">
var lastResults = [];

$("#tags").select2({
multiple: true,
placeholder: "Please enter tags",
tokenSeparators: [","],
initSelection : function (element, callback) {
var data = [];
$(element.val().split(",")).each(function () {
data.push({id: this, text: this});
});
callback(data);
},
ajax: {
multiple: true,
url: "fetch.php",
dataType: "json",
type: "POST",
data: function (params) {
return {
q: params.term // search term
};
},
results: function (data) {
lastResults = data;
return data;
}
},
createSearchChoice: function (term) {
var text = term + (lastResults.some(function(r) { return r.text == term }) ? "" : " (new)");
return { id: term, text: text };
},
});

$('#tags').on("change", function(e){
if (e.added) {
if (/ \(new\)$/.test(e.added.text)) {
var response = confirm("Do you want to add the new tag "+e.added.id+"?");
if (response == true) {
alert("Will now send new tag to server: " + e.added.id);
/*
$.ajax({
type: "POST",
url: '/someurl&action=addTag',
data: {id: e.added.id, action: add},
error: function () {
alert("error");
}
});
*/
} else {
console.log("Removing the tag");
var selectedTags = $("#tags").select2("val");
var index = selectedTags.indexOf(e.added.id);
selectedTags.splice(index,1);
if (selectedTags.length == 0) {
$("#tags").select2("val","");
} else {
$("#tags").select2("val",selectedTags);
}
}
}
}
});
</script>

fetch.php

我检查了 fetch.php,它工作正常。它正在返回数据。

<?php 
require('db.php');

$search = strip_tags(trim($_GET['q']));
$query = $mysqli->prepare("SELECT tid,tag FROM tag WHERE tag LIKE :search LIMIT 4");

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

$list = $query->fetchall(PDO::FETCH_ASSOC);

if(count($list) > 0){
foreach ($list as $key => $value) {
$data[] = array('id' => $value['tid'], 'text' => $value['tag']);
}
} else {
$data[] = array('id' => '0', 'text' => 'No Products Found');
}

echo json_encode($data);

?>

我正在尝试创建标记,它将检查数据库中的标记。如果找不到标签,则用户可以创建新标签,它将保存在数据库中并显示在用户用户选择中。

目前我还没有创建页面来将标签保存在数据库中。我也尝试使用 select2 版本 3.5 和 4.0.1

这是我第一次尝试 select2 插件。所以,如果我犯了愚蠢的错误,请忽略。对此我深表歉意。

感谢您的宝贵时间。

编辑:

我检查了firebug,发现data fetch.php没有从输入框中获取任何值。这看起来像是 Ajax 中的问题。因为它没有发送q值。

最佳答案

select2 v4+ 的配置与 v3.5+ 不同

它将适用于 select2 v4:

HTML

<div class="form-group">
<div class="col-sm-6">
<select class="tags-select form-control" multiple="multiple" style="width: 200px;">
</select>
</div>
</div>

JS

$(".tags-select").select2({
tags: true,
ajax: {
url: "fetch.php",
processResults: function (data, page) {
return {
results: data
};
}
}
});

关于php - jquery select2 : error in getting data from php-mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35216302/

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