我目前正在自定义Joomla组件中创建一个JSON表单,该组件调用函数来获取一组邮政编码,然后将其返回给视图。然后我想循环遍历所有返回的邮政编码以显示它们。 我似乎无法让jQuery.each循环正确循环返回值。这是我的代码:
视图:
jQuery.each(data.postcode, function() {
html += "<span class='btn posctodeInv'>" + v + "</span>";
});
控制器:
$club_id = $_POST['club_id'];
$model = $this->getModel('postcodes');
$postcodes = $model->getClubPostcodes($club_id);
header('Content-Type: application/json');
echo json_encode($postcodes);
模型:
public function getClubPostcodes($club_id) {
$query = "SELECT postcode FROM #__postcodes_to_club WHERE club_id = '" . (int)$club_id . "'";
$this->_db->setQuery($query);
$result = $this->_db->loadAssocList();
return $result;
}
并在Firebug控制台中显示返回的json:
[{"postcode":"cr4"},{"postcode":"cr5"},{"postcode":"cr6"}]
任何人都可以解释为什么我的循环会抛出错误吗? 谢谢!
答案 0 :(得分:2)
尝试,需要使用index和val参数在jQuery.each中循环
jQuery.each(data, function(index, val) {
html += "<span class='btn posctodeInv'>" + val.postcode + "</span>";
});
答案 1 :(得分:2)
尝试
jQuery.each(data, function(index, val) {
html += "<span class='btn posctodeInv'>" + val.postcode + "</span>";
});
答案 2 :(得分:0)
var jsonp = '[{"Lang":"jQuery","ID":"1"},{"Lang":"C#","ID":"2"}]';
var obj = $.parseJSON(jsonp);
$.each(obj, function() {
alert( this['Lang']);
});
我认为您的问题与上述类似。试试上面的方法