【问题标题】:JqueryUI autocomplete PHP JSON [closed]JqueryUI 自动完成 PHP JSON [关闭]
【发布时间】:2015-04-03 13:50:53
【问题描述】:

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

这是我的 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);

感谢您的帮助

【问题讨论】:

  • 参数通过data:选项发送。

标签: php jquery json jquery-ui


【解决方案1】:

应该是 data: {'client' : $("#client").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
                 });
           }
      });
});

【讨论】:

  • 好吧,它可以工作,但我唯一得到的自动完成功能是很多小高度、全屏宽度的矩形,结果没有任何内容:
  • 你从服务器收到什么?我的意思是数据变量中有什么?
  • $json = array(); while($client = $requete->fetch()) { array_push($json, array('nom' => $client['CLI_NOM'])); } 回声 json_encode($json);所以,每个客户端都是一个数组,只有“nom”作为属性
  • 应该是维数组。为什么不只推送 $client['CLI_NOM']?比如 $json[] = $client['CLI_NOM'];
  • 因为我是一名试图学习的学生,我曾经为每个对象的每个属性创建一个带有名称的数组,所以即使只有一个属性我也这样做了。改变它:)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-03-08
    • 1970-01-01
    • 2014-09-12
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多