0

我正在使用jquery aucompletehttps://github.com/devbridge/jQuery-Autocomplete/ 它适用于local并在使用时产生问题server side script

错误图片

在此处输入图像描述

我的代码就像

HTML

<div>
        <input type="text" name="country" id="autocomplete"/>
</div>
<div id="selection"></div>

CSS

.autocomplete-suggestions { border: 1px solid #999; background: #FFF; cursor: default; overflow: auto; }
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
.autocomplete-selected { background: #F0F0F0; }
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }

脚本

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<!-- Above js file can be downloaded from
https://github.com/devbridge/jQuery-Autocomplete/blob/master/src/jquery.autocomplete.js
-->
<script type="text/javascript">
    $('#autocomplete').autocomplete({
        serviceUrl: 'search.php',
        onSelect: function(suggestion) {
            $('#selction-ajax').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
        }
    });
</script>

PHP 页面脚本 search.php

<?php
    if($_REQUEST['query']=='a')
    {
        echo json_encode(array('AD'=>'Adrew','AU'=>'Australia'));
    }
    if($_REQUEST['query']=='b')
    {
        echo json_encode(array('BR'=>'Brazil','BA'=>'Bangladesh'));
    }
    if($_REQUEST['query']=='i')
    {
        echo json_encode(array('IN'=>'India','IND'=>'Indonasia'));
    }
    return;
?>

感谢您的任何建议。

4

2 回答 2

4

我有问题

  1. 首先,它给出了错误suggestions.length
  2. 其次,它给suggestion.value.

所以下面的json encoding工作正常

echo json_encode(array('suggestions'=>array(array('data'=>'AU','value'=>'Australia'),array('data'=>'IN','value'=>'India'))));

完整的 PHP 代码

<?php
    if($_REQUEST['query']=='a')
    {
        echo json_encode(array('suggestions'=>array(array('data'=>'AU','value'=>'Australia'),array('data'=>'IN','value'=>'India'))));
    }
    else if($_REQUEST['query']=='b')
    {
        echo json_encode(array('suggestions'=>array(array('data'=>'BR','value'=>'Brazil'),array('data'=>'BA','value'=>'Bangladesh'))));
    }
    else if($_REQUEST['query']=='i')
    {
        echo json_encode(array('suggestions'=>array(array('data'=>'IN','value'=>'India'),array('data'=>'IND','value'=>'Indonesia'))));
    }
    else
        echo json_encode(array('suggestions'=>array(array('data'=>'NF','value'=>'Not Found'))));
    return;
?>

感谢所有给予宝贵时间的人再次感谢。

于 2013-05-10T12:27:04.683 回答
1

您在 PHP 中回显错误的格式,自动完成需要接收具有value属性或label属性或两者的对象数组。

你可以做这样的事情

echo json_encode(array('value' => 'AU', 'label' => 'Australia'));
于 2013-05-10T10:57:40.267 回答