用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5859|回复: 17
收起左侧

[HELP] 如何用 CI jquery ajax 实现 顶踩 的功能

[复制链接]
发表于 2012-2-17 16:19:03 | 显示全部楼层 |阅读模式
目前我希望的结果是这样的
主页显示的内容有3个demo
分别通过 controler (top.php) => model (M_Top.php) => controler(top.php) => view (top_view.php)  实现如下:
1.将表 vote 中查找出来的前3个数据的 itemid (primary key) 和 num (顶的次数)
   然后返回到界面,并展示出来
2.点击 顶 的时候,通过传递 itemid ,用 jquery ajax 实现更新数据库的 num
   并返回更新后的 num 的值
3.根据返回后的值,更新界面的展示 num 的值

主要问题如下:
1.jquery ajax 更新部分一直未成功
   其中关于传递的 url 部分,以及 参数 一直很纠结(CI 的url有自己的规则,不确定传递CI的还是传统的)
2.此处主界面展示目前固定是3个demo部分
   如果我希望随时可以添加,controler  和 view 部分该如何实现

本人新手,希望借此学习,希望取得真经!!!  
Thanks in advance

 楼主| 发表于 2012-2-17 16:51:44 | 显示全部楼层
我写了一部分,但是没成功
--top.php--
————————————————————————————————
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Top extends CI_Controller {

        public function index()
        {
                $CONST_DISPLAY = 3;
                $this->load->model('M_Top');
                $query = $this->M_Top->select_num();       
                $n = $query->num_rows();
                if (($n > 0) && ($n <= $CONST_DISPLAY))
                {
                        $i = 0;
                        $row = $query->first_row();
                        while ($i < $n)
                        {
                                $data["arr$i"]['id'] = $row->itemid;
                                $data["arr$i"]['num'] = $row->num;
                                $row = $query->next_row();
                                $i++;
                        }
                        $this->load->view('top_view',$data);
                }
                else
                {
                        $this->load->view('top_view_none.php');
                }
        }
}
————————————————————————————————
 楼主| 发表于 2012-2-17 16:52:46 | 显示全部楼层
M_Top.php
————————————————————————————————
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class M_Top extends CI_Model {

        function __construct()
   {
       parent::__construct();
       $this->load->database();
   }

function select_num()
  {
          $this->db->select('*');
                $this->db->from('vote');
                return $this->db->get();
  }
}
————————————————————————————————
 楼主| 发表于 2012-2-17 16:53:30 | 显示全部楼层
top_view.php
————————————————————————————————
<!DOCTYPE html>
<html lang="en">
<head>
        <script type="text/javascript" src="/assets/js/jquery.js"></script>
        <script type="text/javascript" src="/assets/js/top.js"></script>
        <title>Top Click</title>
</head>
<body>
       
        <a id="press-0" href="javascript:void(0)">顶</a>
        <span id="<?php echo $arr0['id']; ?>"><?php echo $arr0['num']; ?></span>
        <hr>
       
        <a id="press-1" href="javascript:void(0)">顶</a>
        <span id="<?php echo $arr1['id']; ?>"><?php echo $arr1['num']; ?></span>
        <hr>

        <a id="press-2" href="javascript:void(0)">顶</a>
        <span id="<?php echo $arr2['id']; ?>"><?php echo $arr2['num']; ?></span>
        <hr>
       
</body>
</html>
————————————————————————————————
 楼主| 发表于 2012-2-17 16:54:21 | 显示全部楼层
Js部分是一直没有实现,写的太烂就不发了
麻烦帮看一下改如何修改!!!
发表于 2012-2-17 18:47:31 | 显示全部楼层
关键看你报什么错了,呵呵
 楼主| 发表于 2012-2-17 19:03:44 | 显示全部楼层
Hex 发表于 2012-2-17 18:47
关键看你报什么错了,呵呵

暂时没有截取到报错信息
你这边的话 麻烦帮我看一下  url  该怎么传吧
我这个东西弄的有点混淆
 楼主| 发表于 2012-2-17 19:12:16 | 显示全部楼层
Hex 发表于 2012-2-17 18:47
关键看你报什么错了,呵呵

我刚看了 Apach error log 有这个信息
File does not exist: C:/wamp/www/favicon.ico
script 'C:/wamp/www/announce.php' not found or unable to stat
File does not exist: C:/wamp/www/announce
File does not exist: C:/wamp/www/announce
File does not exist: C:/wamp/www/announce
发表于 2012-2-17 20:09:13 | 显示全部楼层
lynn.wang 发表于 2012-2-17 19:12
我刚看了 Apach error log 有这个信息
File does not exist: C:/wamp/www/favicon.ico
script 'C:/wamp/w ...

这个错误没事,暂时不用关心。
 楼主| 发表于 2012-2-17 20:35:55 | 显示全部楼层
目前试到这个程度,发现其中有不对的地方,但是未找出
top.js
function clicktop(sid,num) {
        $(document).ready(function() {
                $("#press-"+sid).click(function{
                        $.ajax({
                                type : "post",
                                data : "id="+sid,
                                url  : "<?php echo base_url() ?>/Add_Num",
                                success: function(result) {
                                        alert('right');
                                },
                                error: function() {
                                        alert('wrong');
                                }
                        });
                });
        });
       
        $("#"+sid).html(num+1);
}

加入 $(document).ready(function() 以后,就没效果了
肯定是这里出了问题了
麻烦帮看下

本版积分规则