2015-11-12 57 views
0

PHP JSON数据我已经创建了使用PHP我已经然后JSON编码没有工作

$json_array = json_encode($newarray); 

在我的jQuery的数组,编码阵列似乎形成OK(我想?),但是当我尝试使用json数据 - 什么都没有发生?我期待文本框自动完成。

有趣的是 - 它适用于如果我使用arraytxt2,但不是arraytxt1(通过json_encode创建的)。

任何想法,为什么arraytxt1不工作?提前致谢。

$(document).ready(function() { 
    var arraytxt1 = [{ 
     "equipmentid": "1", 
     "equipmentmake": "Baxi" 
    }, { 
     "equipmentid": "2", 
     "equipmentmake": "Baxi" 
    }]; 

    var arraytxt2 = [{ 
     "id": "1", 
     "label": "aa" 
    }, { 
     "id": "2", 
     "label": "bb" 
    }, { 
     "id": "3", 
     "label": "bbbb" 
    }, { 
     "id": "4", 
     "label": "abab" 
    }, { 
     "id": "5", 
     "label": "cab" 
    }]; 

    $("#txt1").autocomplete({ 
     source: arraytxt1, 
     minLength: 1, 
     select: function (event, ui) { 
      $("#txt2").val(ui.item.equipmentid); 
     } 
    }); 
}); 
+1

请大家来正确地格式化代码的时间。它使你和其他人更容易理解。 –

+0

arraytxt1和arraytxt2都是有效的JSON(jsonlint.com)。在你没有提供的代码中必须有错误。您是否在开发人员控制台中看到任何错误或者#txt2的值不更新? – robmarston

+0

这个代码中arraytxt1的数据就是例子吗?或者你是从JavaScript中获取JSON数据?如果是后者,那么你可能需要将JSON字符串转换为你在这里的数组格式。 – spaniol6

回答

1

为自动完成的对象数组正确的键labelvalue。值属性可能不需要你的情况。

https://api.jqueryui.com/autocomplete/#option-source

尝试:

var arraytxt1 = [{ 
    "equipmentid": "1", 
    "label": "Baxi" 
}, { 
    "equipmentid": "2", 
    "label": "Baxi" 
}]; 
+0

谢谢@ toster-cx数值和标签标签是通过php和编码从数据库传来的。我会尝试更改第二个数组用于测试目的,并查看我是否仍然可以使用它?非常感谢您的意见。 Chris – ChrisOrrick

+0

排序了!谢谢@ toster-cx,你让我走上正轨。我已经将数组更改为标识和标签。感谢所有帮助过我的人。赞赏 – ChrisOrrick