2013-05-17 41 views
1

2天前,我问了这个问题,得到了1个答案,但我不明白。所以,我问你,如果你们有更好的/简单的选择。在Code Igniter项目中使用AJAX访问数据库

看这个代码片段:

<?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>项目,每个项目有自己的 “文本框” S。我想要的是,我的用户会在该“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_comment是在Controller功能。这里是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; 
} 

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

+2

有什么问题吗?这是否工作?不行?你问我们什么? –

+0

+1以上。有什么问题?如果您将AJAX存储在单独的目录中,则需要修改.htaccess,因此默认情况下它不会重定向到CodeIgniter的index.php。 – monkeymatrix

+0

@RocketHazmat此代码无法正常工作,我无法通过此代码将用户的注释存储在数据库中。我认为问题出在AJAX代码中。 – user2387319

回答

0

$_POST["whatever"];可能会失败。而不是使用$this->input->post('comment');$this->input->post('id');

请下次提供更多信息。

+0

好的,我要试试这个。你能告诉我你还需要看什么? @Ahmed D. Sherif – user2387319

+0

不工作的人@Ahmed D. Sherif – user2387319

+0

你可以在firefox上下载firebug,并发送“来自网络标签”的发布数据和收到的数据并添加print_r($ this-> input-> post ())在函数ajax_work_comment的开始,然后再次获取数据 –