我是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的数据。可能是什么问题。
答案 0 :(得分:0)
我查看了您提供的链接。实际上,ID为1114的行的字符串格式存在问题。它包含错误的格式,因此JQuery Autocomplete无法加载它。尝试使用check
在循环中填充数组if($key != 1114){
$cars[] = ''.$value;
}
它会正常工作。如果从数据库中获取API开发人员,则应与API开发人员联系或自行更改。