0

我需要附加来自 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);

    });     
}

我需要将返回的数据作为自动完成附加,我尝试在函数中使用以下内容,我不明白为什么它不起作用

$( "#symbol" ).autocomplete({
                source: data
        });

php文件回显数据如下

if (isset ($_POST['search'])){

$search = $_POST['搜索']; 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;
    }
}

}

4

3 回答 3

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
    });
    });     
}

搜索股票.php

if (isset ($_POST['search'])){

$search = $_POST['搜索']; 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);


}

}

于 2013-03-26T12:11:24.953 回答
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
});
于 2013-03-25T14:29:09.990 回答
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);
}
于 2013-03-25T17:49:40.337 回答