我需要附加jquery函数的结果。 当用户键入搜索字段时,将调用一个函数并从我的数据库返回数据。 我可以使用警报功能
查看返回的数据<input type="text" name="symbol" id="symbol" required="required" onkeyup="findmatch();">
调用的Jquery函数位于
之下 function findmatch(){
var symbol= document.getElementById("symbol").value;
$.post("portfolio/searchStock.php",
{
search:symbol
},
function(data,status){
alert(data);
});
}
我需要将返回的数据作为auto comlete附加,我尝试在函数中使用以下内容,我不明白为什么它不起作用
$( "#symbol" ).autocomplete({
source: data
});
php文件回显如下数据
if (isset ($_POST['search'])){
$ search = $ _POST ['search']; if(!empty($ search)){ $ query =“select * from companylist where symbol like'”。mysql_real_escape_string($ search)。“%'”; $ query_run = mysql_query($ query);
while ($query_row = mysql_fetch_assoc($query_run)){
$symbol = $query_row['symbol'];
echo $symbol;
}
}
}
答案 0 :(得分:0)
您需要格式化db调用的输出:
while ($query_row = mysql_fetch_assoc($query_run)){
$symbol[] = $query_row['symbol'];
}
echo json_encode($symbol);
然后,您需要解析返回的数据。
var sourceData = [];
var arrData = $.parseJSON(data);
foreach(x in arrData)
{
sourceData.push(arrData[x]);
}
$( "#symbol" ).autocomplete({
source: sourceData
});
答案 1 :(得分:0)
试试这个
$( "#symbol" ).autocomplete({
'search':function(event,ui){
var newUrl="portfolio/searchStock.php/abc/"+$("#symbol").val();
$(this).autocomplete("option","source",newUrl)
},
'source':[]
});
并在php中
function abc($search ){
if(!empty ($search)){ $query="select * from companylist where symbol like '".mysql_real_escape_string($search)."%'"; $query_run = mysql_query($query);
while ($query_row = mysql_fetch_assoc($query_run)){
$new_row['label']=htmlentities(stripslashes($query_row['symbol']));
$new_row['value']=htmlentities(stripslashes($query_row['symbol_id']));
$row_set[] = $new_row; //build an array
}
}echo json_encode($row_set);
}
答案 2 :(得分:0)
感谢您的回复,这似乎有效。数组需要从php端进行编码和解析 JavaScript文件
function findmatch(){
var symbol= document.getElementById("tSymbol").value;
$.post("portfolio/searchStock.php",
{
search:symbol
},
function(data,status){
var arrData = $.parseJSON(data);
$("#tSymbol").autocomplete({
source: arrData
});
});
}
searchStock.php
if (isset ($_POST['search'])){
$ search = $ _POST ['search']; if(!empty($ search)){ $ query =“select * from companylist where symbol like'”。mysql_real_escape_string($ search)。“%'”; $ query_run = mysql_query($ query);
while ($query_row = mysql_fetch_assoc($query_run)){
$symbol [] = $query_row['symbol'];
}
echo json_encode($symbol);
}
}