用逗号分隔jquery循环通过json数组数据获取?

时间:2017-05-20 19:48:13

标签: php mysql arrays json ajax

我有json数组,我试图用逗号分隔来获取数组值。 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:

$("#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);
      }       
    } 
  });
});

结果仅显示最后一行。以下是输出:

enter image description here

我想,我怎样才能在我的textarea中用逗号分隔所有 cnumber 数据?

2 个答案:

答案 0 :(得分:0)

您可以在循环的每次迭代后将.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);
  }     

答案 1 :(得分:0)

你应该尝试:

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
  });
});

在此处设置一个名为values的数组,并在此数组中学习结果。此外,您应该使用正确的ajax调用语法。请参阅documentation