【发布时间】:2014-02-17 15:26:41
【问题描述】:
我是 jquery 的新手,我正在尝试使用 Jquery UI 创建一个自动完成功能。我还在学习,所以我确信我的代码可能会更好,但这只是一个开始。 我遇到了一个问题,jquery 在 json 键周围加上引号。我查看了 stackoverflow,但似乎找不到解决方案,所以我认为值得一问,因为我很好并且真正卡住了。我认为它我的 php 一定有问题。
{"value":"Managerial Accountants","id":"5929"}
我希望我的输出是这样的”
{value:"Managerial Accountants",id:"5929"}
这是我的其余代码:
<script>
jQuery(function(){
jQuery(function () {
var checkboxval;
var availableTags = [
<?php
// Database Connection
error_reporting(-1);
ini_set('display_errors', 'On');
$con=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
$q="SELECT name as value,term_id as id FROM 7terms WHERE term_id not in
(select parent from 7term_taxonomy) and term_id in (select term_id from
7term_taxonomy where taxonomy='cat')";
$r = mysqli_query($con, $q);
$city_state = array();
while($row = mysqli_fetch_assoc($r)){
$rows[]=$row;
}
$json = json_encode($rows,true);
echo $json;
?>
];
//set autocomplete search
set_autocomplete_search("tags");
set_autocomplete_search("tags1");
set_autocomplete_search("tags2");
function set_autocomplete_search(p_tags) {
var temp_p_tags = "#" + p_tags;
jQuery(temp_p_tags).autocomplete({
source: availableTags,
select: function (event, ui) {
var txtbx1 = (ui.item.name);
var catid = (ui.item.id);
alert(catid);
jQuery(temp_p_tags).val(txtbx1);
var tags = jQuery(temp_p_tags).val(txtbx1);
//var checkboxval = "";
checkboxval = tags.val();
jQuery("#" + checkboxval + "").prop("checked", true);
},
change: function () {
//alert("changed detected");
//$("#" + checkboxval + "").prop("checked", false);
}
}).blur(function(event) {
event.stopPropagation();
event.preventDefault();
//uncheck all checkboxes first
jQuery(".test input:checked").each(function() {
jQuery(this).attr("checked", false);
});
//set checkbox
var checkbox_tags = jQuery("#tags").val();
jQuery("#" + checkbox_tags + "").prop("checked", true);
var checkbox_tags1 = jQuery("#tags1").val();
jQuery("#" + checkbox_tags1 + "").prop("checked", true);
var checkbox_tags2 = jQuery("#tags2").val();
jQuery("#" + checkbox_tags2).prop("checked", true);
});
}
});
});//]]>
感谢您抽出宝贵时间。非常感谢我能在这方面获得的任何帮助,因为我还有很多东西要学,并且已经坚持了几天。
【问题讨论】:
-
没有错,事情应该是这样的,因为JSON就是这样。如果您希望输出看起来像其他东西,那么您正在尝试以完全不合适的方式解决问题(您没有提及)。
-
您想要的输出不是有效的 JSON。如果出于某种原因您需要那种精确格式的输出,您需要使用自己的函数来创建它。
-
我需要它以这种格式出现的原因是,如果键周围有引号,则自动完成不起作用。那么,我的 jquery 脚本一定有问题吗?
-
@LaurieWilliams:你怎么知道的?您是否删除了引号并看到它在之后工作?
-
@jon.Yes.我输入了一些硬编码的值,如下所示: avalibaletags[{value:"Managerial Accountants",id:"5929"}] 并且自动完成工作。因为我在它停止工作的键周围有引号。