【问题标题】:Passing an array via HTML select with Jquery使用 Jquery 通过 HTML 选择传递数组
【发布时间】:2013-07-30 23:49:56
【问题描述】:

这可能吗:

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

})

提前致谢,

艾伦。

编辑: 'fixture' 是一个错误,它应该是 'row'。我已经更正了上面的示例代码。我正在尝试将 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

【问题讨论】:

  • 所以您想将整个数组存储为option 值?
  • 什么是“夹具”。好像那是一个对象。
  • 您可以将数组存储在选项中,方法是使其成为由 ny 分隔符分隔的字符串。当您再次选择该选项时,使用 js 将该字符串解析为数组。像
  • 您的追加中有语法错误,我们需要知道“fixture”在哪里声明和赋值
  • @tymeJV - 是的,可以选择数组

标签: jquery html arrays select


【解决方案1】:

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

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

您需要委托活动

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

如果 fixture 是这里的数组实例。您可以使用 index 数组的 x 参数

 value: fixture[x], 

【讨论】:

    【解决方案2】:

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

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

    如果不是,请澄清。

    【讨论】:

    • 是的,这就是我想要做的,我的代码使我能够选择数据但我得到一个对象,我不确定是否需要 Jsno 解码?
    【解决方案3】:

    好的,我想通了。我的 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());    
    
    })
    

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

    艾伦

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多