我已经使用PHP一段时间了。我刚开始学习如何使用JSON。
我能够创建一个返回JSON的PHP文件。在我的主文件中,我引用了PHP文件并获取了JSON对象。
我可以在下拉选择菜单中显示对象,如下所示:
$.getJSON( "folder/services.php", function( data )
{
$.each(data, function(index, item)
{
$('#service').append($("<option>" + item.SERVICE + "</option>"));
});
});
上面的代码工作正常。我可以在下拉SELECT选项中显示SERVICE值。
我想弄清楚的是如何将服务转换为OPTION的值。我希望我说得对。
通常,OPTION标记如下所示:
<option value="SERVICE_A">Service A</option>
<option value="SERVICE_B">Service B</option>
...
但是由于我使用的是JSON,我不知道如何将值传入OPTION。
我试图在JQuery中使用PHP,但是没有成功。我会告诉你我的尝试:
$('#service').append($("<option value='".+ item.SERVICE +."'>" + item.SERVICE + "</option>"));
******编辑******
我尝试了以下LShetty提交的这段代码:
$.getJSON( "folder/services.php", function( data )
{
var strToAppend = "";
$.each(data, function(index, item)
{
strToAppend += $("<option/>",
{
'value': item.SERVICE,
'text': item.SERVICE
});
});
$('#service').append(strToAppend);
});
我只对这段代码感到茫然。有谁看到我做错了什么?
答案 0 :(得分:3)
你走在正确的轨道上。但是,不要尝试使用.
进行JS中的连接;它是一个PHP的东西。 .+
并不适用于任何一种语言。
更安全,更jQuery-ish的方法(当"
,'
,<
等SERVICE
中存在$('<option>').
attr('value', item.SERVICE).
text(item.SERVICE).
appendTo($('#service'));
,{{1}},{{1}}等时,它会起作用:
{{1}}
答案 1 :(得分:0)
保罗有上面的答案。这更像是一种优化。在循环中修改DOM是昂贵的!在这个具体问题中可能没问题,因为我只看到2个项目。因此,总是在循环之外构造你的字符串,并在你准备好时立即附加所有字符串。
var strToAppend = "";
$.each(data, function(index, item) {
strToAppend += $("<option/>", {
'value': item.SERVICE,
'text': item.SERVICE
});
});
$('#service').append(strToAppend);
希望有所帮助:)