0
我有一個以下的jQuery代碼如何將每個JSON行添加到全局jQuery變量?
函數是,我運行它來檢索10行每次從數據庫通過AJAX調用。
當AJAX回調接收到數據時,響應的每一行都會附加到全局數組中。
這裏是我的代碼:
<script type="text/javascript">
var oTable;
var outer_start_row = 0;
var outer_limit = 10;
var final_data = [];
$(document).ready(function() {
window.prettyPrint() && prettyPrint();
$('#load').click(function()
{
load_data_in_datatable();
});
});
function load_data_in_datatable()
{
var v = $('#drp_v').val();
var cnt = $('#drp_cnt').val();
var ctg = $('#drp_ctg').val();
var api = $('#drp_api').val();
var nt = $('#drp_nt').val();
alert('outside start_row :'+outer_start_row);
$.post("ajax.php",
{ 'version':v,'category':ctg,
'country':cnt,'network_id':nt,
'api':api,'func':'show_datatable',
'start_row':outer_start_row,'limit':outer_limit},
function(response)
{
var data = response.data;
var limits = response.limits;
outer_limit = limits.limit;
outer_start_row = limits.start_row;
alert('inside start_row :'+outer_start_row);
final_data.push(data);
for(var f = 0; f < final_data.length; f++)
alert(final_data[f].name);
load_data_in_datatable();
},'json');
}
</script>
但問題是,當我使用此警報(final_data [F]。名稱);其警報未定義。
不知道怎麼回事錯
,這裏是我的PHP AJAX功能
function show_datatable($version,$ctg,$cnt,$nt,$api,$start_row,$limit)
{
$cnt_table = "aw_countries_".$version;
$ctg_table = "aw_categories_".$version;
$off_table = "aw_offers_".$version;
$sizeof_ctg = count($ctg);
$cond_ctg = " (";
for($c = 0; $c < $sizeof_ctg ; $c++)
{
$cond_ctg = $cond_ctg." $ctg_table.category = '".$ctg[$c]."' ";
if($c < intval($sizeof_ctg-1))
$cond_ctg = $cond_ctg." OR ";
else if($c == intval($sizeof_ctg-1))
$cond_ctg = $cond_ctg.") ";
}
$sizeof_cnt = count($cnt);
$cond_cnt = " (";
for($cn = 0; $cn < $sizeof_cnt ; $cn++)
{
$cond_cnt = $cond_cnt." $cnt_table.country = '".$cnt[$cn]."' ";
if($cn < intval($sizeof_cnt-1))
$cond_cnt = $cond_cnt." OR ";
else if($cn == intval($sizeof_cnt-1))
$cond_cnt = $cond_cnt.") ";
}
$sizeof_nt = count($nt);
$cond_nt = " (";
for($n = 0; $n < $sizeof_nt ; $n++)
{
$cond_nt = $cond_nt." $off_table.network_id = '".$nt[$n]."' ";
if($n < intval($sizeof_nt-1))
$cond_nt = $cond_nt." OR ";
else if($n == intval($sizeof_nt-1))
$cond_nt = $cond_nt.") ";
}
$sizeof_api = count($api);
$cond_api = " (";
for($a = 0; $a < $sizeof_api ; $a++)
{
$cond_api = $cond_api." $off_table.api_key = '".$api[$a]."' ";
if($a < intval($sizeof_api-1))
$cond_api = $cond_api." OR ";
else if($a == intval($sizeof_api-1))
$cond_api = $cond_api.") ";
}
$output = "";
$sql = "SELECT $off_table.id, $off_table.name
FROM $off_table,$cnt_table,$ctg_table
WHERE $off_table.id = $cnt_table.id
AND $off_table.id = $ctg_table.id
AND ".$cond_api."
AND ".$cond_nt."
AND ".$cond_cnt."
AND ".$cond_ctg." LIMIT $start_row , $limit";
$result = mysql_query($sql);
$arr_result = array();
while($row = mysql_fetch_assoc($result))
{
$arr_result[] = $row;
}
//$arr_result_enc = json_encode($arr_result);
//echo $arr_result_enc;
$arr_limit = array(
'start_row' => intval($start_row + $limit),
'limit' => $limit
);
//$arr_limit_enc = json_encode($arr_limit);
//echo $arr_limit_enc;
$result_json = array(
'data' => $arr_result,
'limits' => $arr_limit,
);
echo json_encode($result_json);
}
編輯:
這裏有一個JSON格式
{"data":[{"id":"11105","name":"Gummy Drop (iPhone, Free, ROW except CN, 72.3MB, w"}],"limits":{"start_row":1,"limit":"1"}}
你可以用'console.log(data)'來驗證你回來的json數據嗎? – 2014-12-03 11:47:15
您可以添加從ajax調用中獲得的響應嗎?(Json代碼) – 2014-12-03 11:47:51
還要注意,您要將整個數據返回到一個數組元素中,而不是單個元素中 – 2014-12-03 11:50:17