【发布时间】:2018-09-27 00:41:55
【问题描述】:
代码:search_json.php
<?php
function get_data()
{
$ci =& get_instance();
$ci->db->select('*');
$ci->db->from('top_menu');
$ci->db->order_by('menu_name');
$query = $ci->db->get();
$result = $query->result_array();
foreach($result as $row)
{
$menu[] = array(
'id' => $row["id"],
'label' => $row["menu_name"]
);
}
return json_encode($menu);
}
echo "<pre>";
print_r(get_data());
echo "</pre>";
?>
index.php
<script>
$(function(){
function split( val )
{
return val.split( /,\s*/ );
}
function extractLast( term )
{
return split( term ).pop();
}
$( "#tags" )
.on( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).autocomplete( "instance" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
source: function( request, response ) {
$.getJSON( "<?php echo base_url(); ?>user/search", {
term: extractLast( request.term )
}, response );
},
search: function() {
var term = extractLast( this.value );
if ( term.length < 1 ) {
return false;
}
},
focus: function() {
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
terms.pop();
terms.push( ui.item.value );
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
});
});
</script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="ui-widget">
<label for="tags">Tags</label>
<input type="text" class="form-control1" id="tags" name="tags"/>
</div>
控制器:user.php
public function search()
{
$this->load->view('user/search_json');
}
在这段代码中,我创建了一个 json 格式文件(即 search_json.php),我想在 index.php 中实现它。 search_json.php 文件完美运行,数据格式正确,但是当我在标签输入字段中写入内容时,它什么也没显示。那么,我该如何解决这个问题呢?
谢谢!
【问题讨论】:
-
调试器控制台是否出现错误?
-
没有错误显示@MathieuDormeval
-
你的
user/search_json被叫到了吗? -
不,@MathieuDormeval 什么也没发生。但是,如果我创建一个单独的文件,那么它的工作
-
您可能需要设置标题。 CodeIgniter 将 JSON 服务为
text/html
标签: php jquery codeigniter autocomplete