2015-04-03 131 views
0

我实际上正在为我的表单中的名称开发自动完成功能。JqueryUI自动完成PHP JSON

这里是我的jQuery代码:

$page->appendJs(<<<JS 
$(document).ready(function() 
{ 
      $.ajax({ 
       url: 'jsonClients.php', 
       type: 'POST', 
       dataType: 'json', 
       data: 'client' : $("#client").val(), 
       success: function(data){ 
        $('#client').autocomplete(
        { 
          source: data, 
          minLength: 1 
        }); 
       } 
      }); 
}); 

JS );

我输入

<input type='text' id='client' name='client'> 

我jsonClients.php工作,它需要一个客户端的参数。 我从来没有做过任何jquery,所以我有点失落。

编辑:

的Json

$json = array(); 

while($client = $requete->fetch()) { 
    array_push($json, array('nom' => $client['CLI_NOM'])); 
} 

echo json_encode($json); 

感谢您的帮助

+0

参数通过'data:'选项发送。 – j08691 2015-04-03 13:55:17

回答

1

它应该是数据:{ '客户'。$( “#客户端”)VAL()},而不是“data:'client':$(”#client“)。val()”。 看看这个example。所以,代码低于应能正常工作:

$(document).ready(function(){ 
     $.ajax({ 
      url: 'jsonClients.php', 
      type: 'POST', 
      dataType: 'json', 
      data: {'client' : $("#client").val()}, 
      success: function(data){ 
       $('#client').autocomplete(
       { 
         source: data, 
         minLength: 1 
       }); 
      } 
     }); 
}); 
+0

好吧,它的工作,但我作为自动完成唯一的东西是很多小高度,全屏幕宽度的矩形作为结果,没有任何东西:< – xNeyte 2015-04-03 14:07:54

+0

你从服务器收到什么?我的意思是数据变量是什么? – 2015-04-03 14:15:41

+0

$ json = array(); ($ client = $ requete-> fetch()){ \t array_push($ json,array('nom'=> $ client ['CLI_NOM'])); } echo json_encode($ json); 因此,每个客户端只有'nom'属性的数组 – xNeyte 2015-04-03 14:16:57

0

我建议你重新设计你的应用程序:
首先声明自动完成,则回调动作。 Great example

$("#city").autocomplete({ 
    source: function(request, response) { 
    $.ajax({ 
     url: "jsonClients.php", 
     dataType: "json", 
     data: { 
     client: request.term 
     }, 
     success: function(data) { 
     //do action 
     } 
    }); 
    } 
});