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

PHP display array in Jquery UI autocomplete

本文关键字:PHP 显示 数组 UI Jquery      更新时间:2023-09-26

我是php编程的新手...我想在选择框中显示一个数组。我调用 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;
}
?> 

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

更令人惊讶的是:

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

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从我从哪里获取我的数组....它适用于所有列,但不显示来自名称和价格组名称的数据。可能是什么问题。

我检查了您提供的链接。实际上,ID 为 1114 的行的字符串格式存在问题。它包含错误的格式,因此 JQuery 自动完成无法加载它。尝试使用检查在循环中填充数组

if($key != 1114){
$cars[] = ''.$value;
}

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