这是一个很大的问题,会花一些时间来阅读。对不起,但是,我是一个新的网站开发人员,我真的需要帮助,我认为它只需要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()
此代码未将用户的评论保存在数据库中。
感谢您提出这个大问题!
答案 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