在Code Igniter项目中使用AJAX访问数据库

时间:2013-05-17 15:26:45

标签: ajax codeigniter

我2天前问了这个问题,得到了1个答案,但我不明白。所以,我问你们是否有更好/更容易的选择。

请看这段代码:

<?php
foreach($array as $key=>$value)
       {
?>
           <div>
               <input type="text" name="comment" id="comment" onkeypress="showUser()"/>
               <input type="hidden" name="id" id="id" value="<?php echo $value['comment'];?>"/>
               <div id="comment"></div>
           </div>
<?php
       }
?>

这里有一些<div>个项目,每个项目都有自己的“文本字段”。我想要的是,我的用户会在“textfield”中发表评论,然后我会从hidden字段中获得相应的评论ID。当用户输入评论时,此评论将存储在数据库中,并使用该“id”显示给用户(在“评论”<div>中)。我想使用普通<form>并让用户“提交”(submit按钮)评论。但这很耗时,整个页面都会重新加载。所以,我认为AJAX更适合这件事。它就像“评论”“Facebook”的一部分。

这是我的AJAX代码:

<script type="text/javascript">
    function showUser()
    {
        $(this).keypress(function(e){
            if(e.which && e.which==13)
              {
                  $.post("<?php echo base_url();?>help/ajax_work_comment",
                  {
                      comment:this.value,
                      id:$(this).next('#id').attr('value');
                  })
              }
            else
              {}
        });
    }
</script>

请注意,这是Code Igniter项目,因此“帮助”是Controllerajax_work_commentController中的函数。这是ajax_work_comment()函数:

public function ajax_work_comment()
{
    $comment=$_POST["comment"];
    $id=$_POST["id"];
    $this->load->model('help/model');

    $this->model->ajax_work_comment($comment,$id);
    echo $comment;
}

我知道它非常复杂。实际上,我是一个新的Web开发人员,这就是为什么它变得如此复杂和恶心。请帮帮我。

2 个答案:

答案 0 :(得分:1)

检查javascript错误。

可能你的js代码必须在文档就绪函数

$(document).ready(function() {
};

还可以查看http://learn.jquery.com/code-organization/concepts/

答案 1 :(得分:0)

$_POST["whatever"];可能会失败。

改为使用$this->input->post('comment');$this->input->post('id');

请在下次提供更多信息。