0

这可能吗:

我正在使用 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'}));

          });

     });

如您所见,我将选择选项的值设为一个数组。然后我检测选择何时更改,但该值作为对象返回。我可以将数组作为值传递吗?如果可以,我如何访问它的内容:

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

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

 alert(result);

})

提前致谢,

艾伦。

编辑: “夹具”是一个错误,它应该是“行”。我已经更正了上面的示例代码。我正在尝试将 mysql 查询的结果返回给 html 选择。

编辑:这是请求的 PHP 代码:

$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

4

3 回答 3

1

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

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

您需要委托活动

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

如果夹具在这里是一个数组实例。您可以使用作为参数index的数组的x

 value: fixture[x], 
于 2013-07-30T17:40:38.200 回答
0

我不完全确定我理解你的问题,但你的最后一个代码块让你看起来像是在问如何获得所选项目?:

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

如果不是,请澄清。

于 2013-07-30T17:42:07.287 回答
0

好的,我想通了。我的 php 脚本只是将 JSON 响应回显给 Jscript,为了传递数组,我必须使用 JSON 对其进行隐式编码:

var temp=JSON.stringify(fixture);

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

然后我在选择时解码 JSon:

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

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

})

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

艾伦

于 2013-07-30T19:28:40.007 回答