在Code Igniter中使用AJAX代码

时间:2013-05-15 20:31:26

标签: ajax codeigniter

这是一个很大的问题,会花一些时间来阅读。对不起,但是,我是一个新的网站开发人员,我真的需要帮助,我认为它只需要1-2行,这就是为什么我问你并希望你能在几分钟内解决它。如果它不那么容易,没问题,我准备好处理它。

看看这段代码:

<?php
foreach($array as $value)
       {
?>
           <div>
               <div class="topic" onclick="showDetails()">
                   <h2>Topic</h2>
               </div>
               <div class="details">
                   <div>
                     <input type="text" name="comment" id="comment" onkeypress="showUser()" />
                   </div>
               </div>
           </div>
<?php
       }
?>

在这里,您可以看到,会有一些<div>个元素,每个元素都有自己的内容(“topic”div,“details”div),我们不知道这个元素有多少{{1}因为<div>循环,项目将在那里。我想要的是,首先所有的“细节”div都将被隐藏。当我点击某个主题时,将显示以下(相应的)“详细信息”div。为此,我使用foreach函数。这是功能:

showDetails()

我知道为什么它不起作用,我无法正确检测到“细节”div。你能告诉我该怎么做吗?

所以,这是我的第一个问题。我的第二个问题是:

在“details”div中,有一个输入框(<script> $(document).ready(function(){ $(".details").hide(); } function showDetails() { $(this).(".details").show(); } </script> )。我希望我的用户可以在那里输入,并在存储到数据库后显示。它就像Facebook的评论功能一样,我们对一个帖子进行评论,它会被存储并以秒的形式显示给我们,而无需重新加载整个页面。 <input type="text" />就是为了做到这一点。我为showUser()函数尝试了什么:

showUser()

它是一个Code Igniter项目,因此“help”是一个“Controller”,而“comment”是该Controller中的一个函数。这是<script type="text/javascript"> function showUser() { $(this).keypress(function(e){ if(e.which && e.which==13) { $.post("<?php echo base_url();?>help/comment", { q:this.value }) } else { } }); } </script> 函数:

comment()

此代码未将用户的评论保存在数据库中。

感谢您提出这个大问题!

1 个答案:

答案 0 :(得分:0)

你的问题有点太大了可能应该分成两个单独的主题。

简言之,

1)要将两个div连接在一起,您需要动态创建单个ID。例如:

foreach($array as $key=>$value)

然后

<div id="topic_<?= $key ?>"  data-id="<?= $key ?>"

在您的详细信息部分中也是如此。然后在jquery中:

var id = $(this).attr('data-id');
$("#details_"+ id).hide();  // or show()

这应该让你开始。


2)无法从您的代码中了解$ this-&gt; model-&gt; comment()正在做什么;你只需做一些基本的调试。

我已经专门调试了这类问题(甚至使用CI),所以请看一下如何调试这些问题

http://codebyjeff.com/blog/2013/04/how-do-i-use-ajax-with-framework-x