【问题标题】:Ajax php array data loading all in one div and has commasAjax php数组数据在一个div中加载并带有逗号
【发布时间】:2016-11-25 13:03:19
【问题描述】:

这是我第一次在新世界中使用 ajax,哈哈。我已经很久没有看到它了,它已经改变了。

我遇到的问题是数据都在一个 div 中结束,而不是在三个 div 中跨越页面。如果我手动加载 div,结果很好,但是当我切换到 ajax 时,它全部在一个 div 中,并且数据也用逗号分隔。我认为这可能与我处理数组的方式有关。但我没有以这种方式处理数组的 ajax 经验。

逗号分隔的数据都在第一个 div 中结束,我也不需要逗号。

这是数组(我在第一个 div 中组合的前两个元素 - 名称图像)

Array
(
[0] => Array
    (
        [0] => testprofile
        [1] => http://www.example.com/dirname/dirname/dirname/images/no-avatar.png
        [2] => adad
        [3] => 02:32:08
    )

)

这里是 html div

 <td align="center" width="20%"><div id="userdata"></div></td>
 <td width="70%"><div id="mesdata"></div></td>
 <td align="center" width="10%"><div id="timedata"></div></td>

这里是ajax

function ajaxGetMessages(roomid, urlwithr)
{   
 $.ajax({
  cache: false,
  dataType: 'json',
  method: 'GET',
  url: urlwithr,
  data: {
         roomid: roomid,
         urlrnd: urlwithr,
         ajax: true
        },
  success: function(data) {

   data.forEach(function(entry) {    

     var alphaname = data[0];
     var avatar = data[1];
     var displayuser = alphaname+'&nbsp;<img src="'+avatar+'" alt="avatar" height="30" width="30" />';

     document.getElementById("userdata").innerHTML = displayuser;
     document.getElementById("mesdata").innerHTML = data[2];
     document.getElementById("timedata").innerHTML = data[3];

    });//close forEach

  }//close success
 }); //close ajax

 }//close function

【问题讨论】:

  • 我想你想要的是entry[0]entry[1]等,而不是data[0]

标签: jquery html arrays ajax


【解决方案1】:

data 是一个数组数组。您正在使用forEach 遍历这些数组。 function(entry) 通过将每个子数组分配给变量entry 将每个子数组分配给函数过程,因此使用entry[0]entry[1] 等访问子数组中的每个项目。

data.forEach(function(entry) {    

  var alphaname = entry[0];
  var avatar = entry[1];
  var displayuser = alphaname+'&nbsp;<img src="'+avatar+'" alt="avatar" height="30" width="30" />';

  document.getElementById("userdata").innerHTML = displayuser;
  document.getElementById("mesdata").innerHTML = entry[2];
  document.getElementById("timedata").innerHTML = entry[3];

});//close forEach

【讨论】:

  • 非常感谢,我什至没有考虑到大声笑,我想这就像在 php foreach $row as $value 中说的那样,非常感谢它似乎正在工作..并且没有错误
  • 对于任何寻找聊天室脚本的人来说,这就是它的胆量。其余的只是传递给数据库,这很容易,但我花了 2 天时间才弄清楚 ajax 版本以实际取回数据并处理它,哈哈……所以我希望这对某人有所帮助。您要做的其他一切都很简单... :)
猜你喜欢
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 2022-10-16
  • 1970-01-01
相关资源
最近更新 更多