Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于填充SELECT选项的JSON结构_Javascript_Html_Json - Fatal编程技术网

Javascript 用于填充SELECT选项的JSON结构

Javascript 用于填充SELECT选项的JSON结构,javascript,html,json,Javascript,Html,Json,在提出的问题中,我看到以下代码可用于添加要选择的选项 function getResults(str) { $.ajax({ url:'suggest.html', type:'POST', data: 'q=' + str, dataType: 'json', success: function( json ) { $.each(json, function(i, optionHtml){

在提出的问题中,我看到以下代码可用于添加要选择的选项

function getResults(str) {
  $.ajax({
        url:'suggest.html',
        type:'POST',
        data: 'q=' + str,
        dataType: 'json',
        success: function( json ) {
           $.each(json, function(i, optionHtml){
              $('#myselect').append(optionHtml);
           });
        }
    });
};

有人能告诉我,在php服务器端,json的格式应该是什么吗。比如,应该如何创建它,以便它被“$('#myselect').append(optionHtml);”

正确解析。要与您展示的JS一起使用,您需要JSON是这样的数组:

["<option value='Woodland Hills'>Woodland Hills<\/option>","<option value='none'>none<\/option>","<option value='Los Angeles'>Los Angeles<\/option>","<option value='Laguna Hills'>Laguna Hills<\/option>"]
[“林地丘陵”、“无”、“洛杉矶”、“拉古纳丘陵”]
…其中每个数组元素都是单个
元素的适当html


(也就是说,与另一个问题中显示的第一个JSON完全相同。)

要与您显示的JS一起使用,您需要JSON是如下所示的数组:

["<option value='Woodland Hills'>Woodland Hills<\/option>","<option value='none'>none<\/option>","<option value='Los Angeles'>Los Angeles<\/option>","<option value='Laguna Hills'>Laguna Hills<\/option>"]
[“林地丘陵”、“无”、“洛杉矶”、“拉古纳丘陵”]
…其中每个数组元素都是单个
元素的适当html


(也就是说,与另一个问题中显示的第一个JSON完全相同。)

代码将解析这个JSON,基本上是一个带有标记的字符串数组

[
    "<option value='...</option>",
    "<option value='...</option>",
    "<option value='...</option>",
    ...
]
和您的代码来解析它并为您创建元素。这样,JSON就更轻了

success: function( json ) {
    var mySelect = $('#myselect')
    $.each(json, function(key,val){
        $('<option/>',{
            value : val //i like this method of making elements better
        })              //because string concatenation is messy
        .text(key)
        .appendTo(mySelect);
    });
}
success:function(json){
var mySelect=$(“#mySelect”)
$.each(json,函数(key,val){
$('',{
value:val//我喜欢这种使元素更好的方法
})//因为字符串连接很混乱
.文本(键)
.appendTo(mySelect);
});
}

代码将解析这个JSON,基本上是一个带有标记的字符串数组

[
    "<option value='...</option>",
    "<option value='...</option>",
    "<option value='...</option>",
    ...
]
和您的代码来解析它并为您创建元素。这样,JSON就更轻了

success: function( json ) {
    var mySelect = $('#myselect')
    $.each(json, function(key,val){
        $('<option/>',{
            value : val //i like this method of making elements better
        })              //because string concatenation is messy
        .text(key)
        .appendTo(mySelect);
    });
}
success:function(json){
var mySelect=$(“#mySelect”)
$.each(json,函数(key,val){
$('',{
value:val//我喜欢这种使元素更好的方法
})//因为字符串连接很混乱
.文本(键)
.appendTo(mySelect);
});
}

JSON是键值/名称对的集合。它们可以是对象或数组的形式,也可以两者兼而有之

让我假设你想有两个下拉列表,第一个下拉列表有国家,第二个下拉列表有特定国家的城市。在这种情况下,JSON结构如下所示:

{
  "<select value='usa'>USA</select>": "<option value='boston'>Boston</option>",
  "<select>FRANCE</select>": "<option value=paris'>Paris</option>",
  "<select>UNITED KINGDOM</select>": "<option value=london'>London<option value=not'>Nottingham</option>",
  "<select>GERMANY</select>": "<option value='munich'>Munich</option>"
}
{
“美国”:“波士顿”,

“FRANCE”:“LondonJSON是键值/名称对的集合。它们可以是对象或数组的形式,也可以是两者的形式

假设您想要有两个下拉列表,第一个下拉列表包含国家,第二个下拉列表包含特定国家的城市。在这种情况下,JSON结构如下所示:

{
  "<select value='usa'>USA</select>": "<option value='boston'>Boston</option>",
  "<select>FRANCE</select>": "<option value=paris'>Paris</option>",
  "<select>UNITED KINGDOM</select>": "<option value=london'>London<option value=not'>Nottingham</option>",
  "<select>GERMANY</select>": "<option value='munich'>Munich</option>"
}
{
“美国”:“波士顿”,


“FRANCE”:“LondonNote:要在问题或答案中插入一段代码,请选择它并按下
{}
按钮,或将其缩进四个空格。(不要用`-这是用于
内联代码
)哦..好的..谢谢..我是新来的..仍在学习..看起来像是一个很棒的网站..注意:要在问题或答案中插入一段代码,请选择它并按下
{}
按钮,或将其缩进四个空格。(不要用`-这是用于
内联代码
)哦..好的..谢谢..我是新来的..仍在学习..看起来像是一个很棒的网站..但这是不对的。你需要将HTML选项元素附加到select以使其正常工作。@EricFreese:我只是在谈论JSON结构,你可以在以后的HTML中添加类似$('body')。附加($('')……我没有投反对票,但问题明确要求一个JSON结构,该结构将与上面显示的现有JavaScript一起工作-因此JSON将需要包含每个选项的html标记。这是不对的。您需要将html选项元素附加到select中,以便它们正确工作。@EricFreese:我只是在谈论JSON结构,您可以在以后的html中添加类似于$('body')的内容..我没有否决投票,但问题明确要求JSON结构与上面显示的现有JavaScript一起工作-因此JSON需要包含每个选项的html标记。非常感谢您的建议!!!…我已经根据它更改了代码。但是,还有一个小问题。SELECT中的所有名称每个选项填充一个字符…即每个选项一个字符。我做错了什么?@Archer你能发布这个问题的演示或屏幕截图吗?我认为更好的办法是在请求中传递选项值,并在回调中构造整个字符串,如
“option value=”“+value+”>”
。这样,通过Ajax调用接收的数据量就减少了…@JosephDreamer我已经在这里上传了图像…请看,每个选项都有一个字符,还有json语法字符。@JosephDreamer,我的服务器端php就是这个
{$req='从s1_cities中选择不同的州名称';$query=mysql_查询($req);$results[]='选择州';而($row=mysql_fetch_数组($query)){$results[]=$row['state_name'];}返回json_encode($results);}
非常感谢您的建议!!!…我已经根据它更改了代码。但还是有一个小问题。SELECT中的所有名称似乎都填充为每个字符…即每个选项一个字符。我做错了什么?@Archer您能发布此问题的演示或屏幕截图吗?我认为更好的办法是在请求中传递选项值,并在回调中构造整个字符串,如
“option value=”“+value+”>”
。这样,通过Ajax调用接收的数据量就减少了…@JosephDreamer我已经在这里上传了图像…请看,每个选项都有一个字符,还有json语法字符。@JosephDreamer,我的服务器端php就是这个
{$req=”从中选择不同的状态名称