使用Jquery通过HTML select传递数组

时间:2013-07-30 17:37:03

标签: jquery html arrays select

这可能吗:

我正在使用Ajax调用来获取SQL查询的一些结果。结果是一个数组中的返回,我在PHP脚本(ajax调用)的末尾回显为JSON。

然后对于sql结果的每一行,我正在使用'追加'要为html选项添加选项,如下所示:

$.ajax({
     type: "POST",
     dataType: "json",
     url: "DoSQL.php",
     data: dataString,
     success:function(reply){

          $.each(reply, function(x, row){

               $('#mySel').append($('<option>', {value: row, text:'Some text'}));

          });

     });

正如您所看到的,我将select选项的值赋予数组。然后我检测选择何时更改,但该值作为对象返回。我可以将数组作为值传递,如果是,我如何访问其内容:

$("#mySel").change(function(){

 var result=$('#matchSel').val();

 alert(result);

})

提前致谢,

艾伦。

编辑:&#39;灯具&#39;是一个错误,它应该是&#39; row&#39;。我已经纠正了上面的示例代码。我试图将mysql查询的结果返回给html选择。

编辑:这是PHP代码,作为requesteD:

$query="SELECT * FROM `table1`";

$result=$mysqli->query($query);

while($row=$result->fetch_array(MYSQLI_ASSOC)){

     $res[]=$row;

}

$mysqli->close();

echo json_encode($res);

因此,数组$res将作为reply返回,然后分配给row

3 个答案:

答案 0 :(得分:1)

这种附加事件的方式不起作用,因为它是动态添加的元素

$("#mySel").change(function() {

您需要委派活动

$(document).on("change", "#mySel", function(){

如果 fixture 是一个数组实例。您可以使用index参数

的数组的x
 value: fixture[x], 

答案 1 :(得分:0)

我不完全确定我理解你的问题,但是你的最后一个代码块似乎让你知道如何获得所选的项目? :

var result=$('select.foo option:selected').val();

如果没有请澄清。

答案 2 :(得分:0)

好的我明白了。我的PHP脚本只回显JSON响应JSON响应,为了传递数组我必须用JSON隐式编码:

var temp=JSON.stringify(fixture);

$('#mySel').append($('<option>', {value: temp, text:'my text'})); 

然后我在选择时解码JSon:

$("#mySel").change(function(){

     var obj=jQuery.parseJSON($('#mySel').val());    

})

感谢您的提示并让我大声思考!

艾伦