2013-09-27 96 views
0

我正在学习jQuery,我想使用自动完成功能。但我不知道为什么我的数据不显示在我的HTML。你能解释我这个源代码有什么问题吗?自动完成jQuery显示数据

<?php 
// receive data 
if(isset($_GET['q'])) { 
    $q = addslashes(htmlspecialchars($_GET['q']));   // protection 
    require_once('../required.php'); 
    //our request 
    $rslt= $pdoSearch->findCity($q); 
    $tab=array(); 
    foreach ($rslt as $data){ 
     array_push($tab, 
      array(
       "label" => $data['fistname']." ".$data['lastname']." ".$data['login']." ".$data['mdp']." ".$data['city'], 
       "value" => $data['id'] 
      ) 
     ); 
    } 
    echo json_encode($tab); 
} ?> 

我的自动完成文件:

$(function(){ 
    $('#search').autocomplete({ 
     source: 'fichier.php', 
     select: function (event, ui) { 
      $("#search").val(ui.item.label); 
      $("#id").val(ui.item.value); 
     } 
    }); 

    $('#button').click(function() { 
     $("#id").val(); 
    });  
}); 

而我的HTML文件:

<fieldset id="field" > 
    <legend>Fonctionnalit&eacute;s</legend><br /> 
    <form class="icon" method="get"> 
     <label for="search">Recherche: </label> 
     <input id="id" name="id" hidden="hidden" /> 
     <input type="text" id="search" style="width: 600px;"/> 
     <input type="submit" id="button"/> 
    </form> 
</fieldset> 

在此先感谢您的帮助。 最好的问候,

编辑:我发现我的问题,这是我在我的HTML使用其他身份证相同的名称..感谢您的帮助。

回答

0

中的foreach错过as之间的空间' '

foreach ($rslt as $data){ 
      //-^^---here 
+0

感谢喜但是,这并不反正工作,我只是未能我复制/粘贴:/ – user2822320

0

使用autocomple jQuery插件 http://www.devbridge.com/projects/autocomplete/jquery/

添加js文件

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.autocomplete.js"></script> 

输入框

<input type="text" name="q" id="query" /> 

的Javascript

var options, a; 
jQuery(function(){ 
    options = { serviceUrl:'your service' }; 
    a = $('#query').autocomplete(options); 
}); 

Retun数据甲酸盐

{ 
query:'Li', 
suggestions:['Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania'], 
data:['LR', 'LY', 'LI', 'LT'] 
} 
0

首先,确保你的PHP返回由控制fichier.php文件的结果以及形成的JSON。显示它来控制其内容。

然后,您的数据不会显示,因为您的输入被隐藏。删除隐藏attribut显示领域:

<input id="id" name="id" type="text" /> 

而且为你自动完成元素,就没有必要选择您想要的项目时要使用的

$("#search").val(ui.item.label); 

这应该自动的行为。下面是一个为例:

$('#search').autocomplete({ 
     source: 'fichier.php', 
     autoFocus: true, 
     minLength: 2, //minimum 2 chars to execute an autocomplete 
     select: function (event,ui) {   
      $('#id').val(ui.item.id); 
return false; 
      } 
     }); 
+0

N.B:有自动完成元素,你需要jQueryUI的,不仅是jQuery的 – ylerjen