使用ajax返回数组或字符串,以便我可以在控制器Cakephp 2中使用它

时间:2012-09-25 18:28:22

标签: javascript ajax json cakephp cakephp-2.0

案例是我在一个页面中有几个横幅(广告),我需要将它在页面中显示的次数保存到数据库。 说,

我有id = 1,2,3,4,5的横幅。

现在每次页面刷新时,它都会加载到页面标题id = 1,2,3。因此,我需要获取此ID,以便我可以将字段保存到数据库以查看计数。

我的问题是,如何使用jquery ajax返回该id号,以便我可以在控制器中使用它。我已经在javascript中设置了

var adId = '1,2,3';

当然我可以使用ajax并循环几次并将每个id作为多个ajax调用,但我不想这样做。有没有可能使用json或其他东西来获取数据,所以我可以在每次页面加载时在控制器中使用它?

2 个答案:

答案 0 :(得分:0)

不确定您要执行的操作或使用的服务器端语言。 您可以以json格式将数据作为数组发送:

var adId = [1, 2, 3];

在javascript中你可以像普通数组一样使用它。 如果在服务器端使用PHP,则可以应用json_decode()将json格式的字符串转换为PHP中可用的数组。

答案 1 :(得分:0)

这应该是你的jquery将数据发送到你的控制器动作。

$.get("<?php echo $this->Html->url('controller' => 'ads', 'update_views'); ?>", { id: "1"} );

这应该在您的控制器中,例如:ads_controller.php

function update_views(){
  if isset($_GET['id']){
    $ad_id = $_GET['id'];
    $ad = $this->Ad->read($ad_id);
    $this->Ad->id = $ad_id;
    $this->Ad->saveField('views', $ad['views']+1);
  }
  return false; // not to return a view.
}

我没有测试过这个,希望它有效。我相信它会。希望我理解正确。干杯