2016-11-24 61 views
0

好吧,我使用Json将一些数据从PHP发送到Ajax(完美工作),但是我的问题出现在为什么我想分割该响应。在Ajax中从PHP中分割数组

如何使用例如提醒每个元素?

$.ajax({   
      url:"myHandler.php", 
      type:"POST", 
      data:{function:"rxz", xLast:xx, yLast:yy}, 
      dataType:'json', 
      success:function(data){ 
       alert(data); //How do I alert EVERY single data element on its own? 
      }, 
      error:function(data) { console.log(data); } 
     }); 

从PHP的东西被送到像这样

print json_encode(array($json_array,$from,$to)); 

它基本上是发送一个阵列&包含从和到它的内部

+0

你用过每个循环吗? – sheetal

+0

我使用array_push作为$ json_array,如果你的意思是(和它是在一个循环内)。 –

回答

1

你为什么不调整你的PHP返回一个适当的阵列。这样的事情就好办了:

print json_encode([ 
    'data' => $json_array, 
    'from => $from, 
    'to' => $to 
]); 

然后你就可以你的jQuery中遍历:

jQuery.each(data.data, function(i, element) { 
    alert(element); 
}); 

你甚至可以用“正确”的做法并在返回状态码的json([....'status' => true/false ....]),然后您可以正确显示最终结果。

+0

嗯,这听起来不错。谢谢你,我试试吧 –

+0

好吧,我试过了,但没有出来。警报没有显示 –

+0

@TomislavNikolic你检查了你的控制台是否有任何错误? – Darren

1

您可以使用每个回路表示用于JSON的每一个元素警报导致

success: function(data){ 
     $.each(data, function(index, value){ 
       alert(value); 
     }); 
} 
0

香草的Javascript:

for (var i=0; i < data.length; i++) 
    alert(data); 

现在,这里的棘手的部分。如果数据中的所有元素都是标量,则应该没问题,但如果任何元素是数组或对象,那么您将在您的警报中获得[Object]。因此,您最好根据您对结果的期望格式化它们,或使用JSON.stringify(element)函数将该对象转换为其字符串表示形式。这将做到:

for (var i=0; i < data.length; i++) 
    alert(JSON.stringify(data));