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

PHP display array in Jquery UI autocomplete

我是 php 编程新手...我想在 select 框中显示一个数组。我正在调用 Web 服务的数组是一个关联数组....称为 $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;
}
?> 

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

更令人惊讶的是:

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

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))

结果格式似乎有问题。它在 select 框中显示良好...但在自动完成中根本没有出现。

**

FOUND THE PROBLEM... BUT SOLUTION

** 实际上一切正常...这是 url http://demo.eurekageeks.com/API/GetService.php 从我获取我的数组的地方....它适用于所有列但不显示来自名称和价格组名称的数据。可能是什么问题。

我检查了你提供的link。实际上,ID 为 1114 的行的字符串格式存在问题。它包含错误的格式,因此 JQuery 自动完成无法加载它。尝试使用 check

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

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