我有一个带自动填充功能的文本框。我的代码是,
<script>
$(function() {
var items = [ 'France', 'Italy', 'Malta', 'England',
'Australia', 'Spain', 'Scotland' ];
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
$( "#skills" )
.autocomplete({
minLength: 0,
source: function( request, response ) {
response( $.ui.autocomplete.filter(
items, extractLast( request.term ) ) );
},
focus: function() {
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
});
});
</script>
上面的代码工作正常。现在的问题是,我想显示数据库而不是var items = [ 'France', 'Italy', 'Malta', 'England', 'Australia', 'Spain', 'Scotland' ];
的值。我想更改变量item
内的值。
我的codeigniter控制器代码是,
$data['skills'] = $this->workdone->getAllSkills();
$this->load->view($page, $data);
我的HTML代码是,
<input type="text" name="skills" id="skills">
我已经尝试了很多。有没有解决方案。
答案 0 :(得分:1)
最好的方法是将值从Codeigniter传递到AJAX前端。
执行此操作的简便方法是将其打印出来,如:
then
AJAX示例(更好的方式)
你的jQuery将使用$ .get():
subjectId
您的控制器代码将打印JSON:
var items = ["<?=implode('","',$skills)?>"];
答案 1 :(得分:1)
步骤1:创建阵列基于查询的阵列阵列具有数据库中的所有项目...对于EX:$ all_items
第2步:现在你只需要使用foreach循环来存储javascript数组中的php数组值..
<script type="text/javascript" language="javascript">
var all_state = new Array();
<?php foreach($all_items as $k => $v){ ?>
all_state.push('<?php echo $v; ?>');
<?php } ?>
</script>
步骤3:现在java脚本中的项目数组将包含所有状态!!全部是
答案 2 :(得分:1)
我不认可任何使用数组/字符串函数模拟JavaScript数组/对象的黑客技术。
它不会比使用json_encode()
更简单或更稳定。
如果您的控制器看起来像这样:
$data['countries'] = ['France', 'Italy', 'Malta', 'England', 'Australia', 'Spain', 'Scotland'];
// these are countries, not skills
$this->load->view($page, $data);
然后,您的视图只需要在执行定制功能之前在script标记内声明客户端变量。
echo '<script>let countries = ' , json_encode($countries) , ';</script>';
这将使一维数组可用于您的客户端脚本,并将以下内容打印到文档中:
<script>let countries = ['France', 'Italy', 'Malta', 'England', 'Australia', 'Spain', 'Scotland'];</script>
json_encode()
为什么如此完美?因为它仅在数据类型需要时才使用引号,并且它将自动转义值中的引号。这意味着无论您传递什么值,脚本都不会中断(无论如何在那时都是如此)。
如果要将几条数据传递到客户端,则可以将它们全部作为单个对象声明(包含许多键值对)或you can pass each value separately发送。