简体   繁体   English

通过逗号分隔的JSON数组数据获取的jQuery循环?

[英]Jquery loop through json array data fetch with comma separed?

I have json array and I am trying to fetch the array values with comma separated. 我有json数组,我想用逗号分隔来获取数组值。 Mysql query and loop through json array MySQL查询并遍历JSON数组

if($_REQUEST['grpid']) {
    $sql = "SELECT cnumber, group_id FROM tbl_contact WHERE group_id ='".$_REQUEST['grpid']."'" ;
    $resultset = $connecDB->query($sql);
    //$resultset = mysqli_query($connecDB, $sql) or die("database error:". mysqli_error($connecDB));

    $data = array();
    while( $rows = $resultset->fetch_assoc() ) {
        $data[] = $rows;
    }
    echo json_encode($data);
} else {
    echo 0; 
}

JS : JS:

$("#gnumbers").change(function() { 
  var id = $(this).find(":selected").val();
  var dataString = 'grpid='+ id;    
  $.ajax({                
    url: 'getGroupNumbers.php',
    dataType: "json",
    data: dataString,  
    cache: false,
    success: function (data) {  
      var i, l;
      for (i = 0, l = data.length; i < l; i++) { 
        $("#num").text(data[i].cnumber);
        //console.log(data[i].cnumber);
      }       
    } 
  });
});

Result display only last row. 结果仅显示最后一行。 Below is the output : 下面是输出:

在此处输入图片说明

I want, how can I all cnumber data with separate by comma in my textarea? 我要如何在我的文本区域中用逗号分隔所有cnumber数据?

You can change the .text() to .append() on each iteration of the loop, after the 1st. 您可以在第一次循环后,在每次循环中将.text()更改为.append()

success: function (data) {  
  var i, l;
  for (i = 0, l = data.length; i < l; i++) { 
    if(i==0) { // if 1st, use .text()
        $("#num").text(data[i].cnumber);
    } else { // if not 1st, use .append() and prepend a comma
        $("#num").append(", "+ data[i].cnumber);
    }
    //console.log(data[i].cnumber);
  }     

You should try : 你应该试试 :

var values = [];
$("#gnumbers").change(function() {
  var id = $(this).find(":selected").val();
  var dataString = 'grpid='+ id;    
  $.ajax({                
    url: 'getGroupNumbers.php',
    dataType: "json",
    data: dataString,  
    cache: false
  }).done(function (data) {
    $.each(data, function (i,e) {
      values.push(data.cnumber);      
    });
    $("#num").append(values.join(','));
  }).fail(function () {
    // Fails
  });
});

Set an array called values here, and learn the results in this array. 在此处设置一个称为values的数组,并在该数组中学习结果。 Also, you should use the correct syntax for ajax calls. 另外,您应该对ajax调用使用正确的语法。 See the documentation . 请参阅文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM