这可能吗:
我正在使用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
答案 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());
})
感谢您的提示并让我大声思考!
艾伦