使用PHP的JQuery向量
这是我的JQuery代码 问题:如何使用PHP创建编程语言的矢量 更新: jquery使用PHP的JQuery向量,php,jquery,Php,Jquery,这是我的JQuery代码 问题:如何使用PHP创建编程语言的矢量 更新: jquery $( "#autocomplete" ).autocomplete({ source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] }); // this is the simple version. LOOK TO THE UPDATE!!! html 我正在寻找: php ($i=1;$i$i
$( "#autocomplete" ).autocomplete({
source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
}); // this is the simple version. LOOK TO THE UPDATE!!!
html
我正在寻找:
php
($i=1;$i<$total_行;++$i)的
{
$sample_return[]=array(“id”=>$i,“label”=>$ar1[$i],“value”=>$ar2[$i]);
}
您应该json\u编码它:
for($i = 1; $i < $total_rows; ++$i)
{
$sample_return[] = array("id"=>$i,"label"=>$ar1[$i],"value"=>$ar2[$i]);
}
但请不要将其注入js代码,而是这样做:
$langs = array( "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby");
echo json_encode($langs); // this will produce the desired output
通过这种方式,您可以将JS代码与数据源分离。您可以使用将任何变量从PHP输出到JavaScript(不包括资源)
在这种情况下:
$( "#autocomplete" ).autocomplete({
source: $.parseJSON($('#langs').text());
});
来源:
这里是我放在一起的一个快速示例,它显示了您真正想要做的事情(最终),最好使用ajax查询一个“feeder文件”,该文件将用作自动完成源代码:
而不是将/echo所有值直接呈现到页面中:
source: <?php echo json_encode(Array("c++","java"...)); ?>
=2){
//在这里,您可以使用LIKE%查询数据库中的值
$sample\u return=数组(
数组('id'=>1,'label'=>C++,'value'=>C'),
数组('id'=>2,'label'=>Java','value'=>Java'),
数组('id'=>3,'label'=>PHP','value'=>PHP'),
数组('id'=>4,'label'=>JavaScript','value'=>JavaScript'),
数组('id'=>5,'label'=>ASP','value'=>ASP'),
数组('id'=>6,'label'=>Ruby','value'=>Ruby'),
);
//繁荣
模具(json_编码($sample_return));
}
}
?>
无标题文件
$(函数(){
$(“#自动完成”)。自动完成({
来源:“autocomplete.php”,
最小长度:2,
选择:功能(事件、用户界面){
警报('Do something with:ID:'+ui.item.ID+'名称:'+ui.item.label+'值:'+ui.item.VALUE');
}
});
});
我正在寻找:
在这种情况下,“向量”到底是什么?你的意思是想用动态加载的PHP脚本而不是JavaScript中的静态列表来填充自动完成列表吗?我指的是数组,这样称呼它很正常。感谢接受,很高兴它有帮助。发布了一个更新,因为虽然它解决了我的问题,但它并没有解决一般的问题。(无更新)
<script type="application/json" id="langs">
<?php echo json_encode($langs); ?>
</script>
$( "#autocomplete" ).autocomplete({
source: $.parseJSON($('#langs').text());
});
source: <?php echo json_encode(Array("c++","java"...)); ?>
<?php
//Check request is from a ajax request
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){
//check the term passed to this php from jquery autocomplete
if(!empty($_GET['term']) && strlen(trim($_GET['term'])) >= 2){
//This is where you would query your db for the values using a LIKE%
$sample_return = array(
array('id'=>1,'label'=>"C++",'value'=>'c'),
array('id'=>2,'label'=>"Java",'value'=>'Java'),
array('id'=>3,'label'=>"PHP",'value'=>'php'),
array('id'=>4,'label'=>"JavaScript",'value'=>'javascript'),
array('id'=>5,'label'=>"ASP",'value'=>'asp'),
array('id'=>6,'label'=>"Ruby",'value'=>'ruby'),
);
//boom
die(json_encode($sample_return));
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/themes/black-tie/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.js"></script>
</head>
<body>
<script>
$(function() {
$( "#autocomplete" ).autocomplete({
source: "autocomplete.php",
minLength: 2,
select: function( event, ui ) {
alert('Do something with: ID:' + ui.item.id + ' NAME:' + ui.item.label+' VALUE:' + ui.item.value);
}
});
});
</script>
<form method="POST" name="search" action="">
<label for="autocomplete">Im looking for:</label>
<input type="text" id="autocomplete" name="search" size="50">
<input type="button" class="button" value="Search"/>
</form>
</body>
</html>