Jquery UI自动完成中的PHP显示数组

时间:2016-03-16 18:34:11

标签: javascript php jquery-autocomplete

我是php编程新手...我想在选择框中显示一个数组。我调用webservices的数组是一个关联数组....叫做$ services。

这是我的文字自动完成输入,我想列出这些:

<input class="sel2" id="select_service" name="Enter keywords" type="text" value="search something" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '';}" required="">

这是正文之前的脚本。

<script>
$(function() {
var availableTags =  <?php echo json_encode($cars); ?>;
    $( "#select_service" ).autocomplete({
    source: availableTags
    });
});
</script>

一切都很好。我有一个奇怪的问题。我在顶部定义了2个php数组,在我显示自动完成文本之前......我正在使用这个PHP代码来获取数组$ cars

<?php
foreach($services as $key => $value){
//echo '<option value="'.$key.'">'.$value.'</option>';
$cars[] = ''.$value;
}
?> 

令人惊讶的是:值已经在数组中填充...我也可以在选择框中显示它们...可以打印它们......但它没有出现在自动完成中。但是,如果我在循环中分配一些硬编码值,则自动完成代码正常工作。所以..问题是......实际值永远不会显示在自动完成中。

更令人惊讶的是:

自动完成文本仅显示关联数组的值....甚至显示键。这是数组打印的方式。

Array ( [0] => Exclusive - Special Offer!!! - [Special offer] U.S.A - T-Mobile Unlock via Device Unlock App - 1-3 Days [1] => Exclusive - Special Offer!!! - [Special offer] U.S.A - T-Mobile iPhone IMEI Cleaning Service (Clean Lost/Stolen/Blocked IMEI) - 1-7 Days [2] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 3G 3GS 4 4S 5 5S 5C 6 6+ (Clean) - 0-48 Hours [3] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 3G 3GS 4 4S 5 5S 5C 6 6+ (Clean) - Instant [4] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 6S 6S+ (Clean) - Instant [5] => Exclusive - Special Offer!!! - [Special offer] U.S.A - AT&T iPhone 3G 3GS 4 4S 5 5S 5C 6 6+ [Only Active Line IMEIs] - 1-4 Days))

看起来结果格式存在问题。它在选择框中显示良好...但在自动完成时根本不显示。

**

  

发现问题......但解决方案

** 实际上一切正常......这里是网址http://demo.eurekageeks.com/API/GetService.php 我从哪里获取我的数组....它适用于所有列但不显示Name和PriceGroupName的数据。可能是什么问题。

1 个答案:

答案 0 :(得分:0)

我查看了您提供的链接。实际上,ID为1114的行的字符串格式存在问题。它包含错误的格式,因此JQuery Autocomplete无法加载它。尝试使用check

在循环中填充数组
if($key != 1114){
$cars[] = ''.$value;
}

它会正常工作。如果从数据库中获取API开发人员,则应与API开发人员联系或自行更改。