所以我在laravel中的模型中构建这个jquery引导表,你可以看到它出现了相同的数字,但是当你点击它并将它发送到函数时,数字会出现1减去原始数字。有什么想法吗?
这是控制器:
if($data) {
for ($i = 0; $i<sizeof($data['data']); $i++) {
$adsetid = $data['data'][$i]['adset_id'];
$link = strval($adsetid);
// dd($link);
if (!array_key_exists('actions', $data['data'][$i])) {
$summary[$i] = array('results' => intval('0').' Leads',
'cpr' => '$'.intval('0'),
'reach' => intval($data['data'][$i]['reach']),
'impressions' => intval($data['data'][$i]['impressions']),
'spend' => "$".round(floatval($data['data'][$i]['spend']),2),
'ctr' => round($data['data'][$i]['ctr'],6),
'cpc' => round($data['data'][$i]['cpc'],6),
'clicks' => intval($data['data'][$i]['clicks']),
'account_id' => intval($data['data'][$i]['account_id']),
'account_name' => $data['data'][$i]['account_name'],
'adset_id' => '<a href="#" onclick="adminAjaxCall('.($link).')">'.intval($data['data'][$i]['adset_id']).'</a>',
'ad_name' => $data['data'][$i]['ad_name'],
'campaign_id' => intval($data['data'][$i]['campaign_id']),
'campaign_name' => $data['data'][$i]['campaign_name']);
}
和javscript:
function adminAjaxCall(value) {
console.log(value);
$("#high_charts_admin").hide();
$("#load").show();
$.ajax({
type: 'GET',
url: '/facebookadmin/',
data: {
adsetId: value
},
dataType: 'json',
success: function (response) {
$('#load').hide();
$("#high_charts_admin").show();
console.log("adminAjaxCallSuccess:");
console.log(response);
adminDrawHighCharts(response);
},
error: function(jqXHR, textStatus, errorThrown) { // What to do if we fail
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
}
答案 0 :(得分:2)
我不完全确定为什么它只是减少了一个,但我尝试只是打开开发人员工具并将该数字分配给a = 23842710141990585
的var并且它也是如此。然后a
var为23842710141990584。
原来这个数字远远大于Javascript&#39; s MAX_SAFE_INTEGER
。
我建议你把它变成一个字符串。
你需要将$link
包装在引号中,这会将它转换为字符串,就像@manian所指出的那样:
'adset_id' => '<a href="#" onclick="adminAjaxCall(\''.$link.'\')">'.intval($data['data'][$i]['adset_id']).'</a>'
编辑,回答\
所做的评论:
escapes the next character。由于您发布的字符串包含在单引号中,因此在字符串中添加单引号自然会结束它。因此,为了实际打印单引号,请在其前面加上反斜杠:\'
。
在您的情况下,您需要将adminAjaxCall(123)
中的数字转换为字符串。您可以通过在数字周围添加单引号或双引号来完成此操作:adminAjaxCall('123')
。这就是我们所取得的成就 - 在数字周围添加了单引号。