这是一个巨大的问题,会花时间阅读。对此很抱歉,但是,我是一个新的 Web 开发人员,我真的需要帮助,我认为这只是 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),我们不知道这个<div>
项目会有多少,因为foreach
循环。我想要这样,首先所有的“细节” div 都将被隐藏。当我单击一个主题时,将显示其以下(对应的)“详细信息” div。为此,我使用showDetails()
函数。这是功能:
<script>
$(document).ready(function(){
$(".details").hide();
}
function showDetails()
{
$(this).(".details").show();
}
</script>
我知道为什么它不起作用,我无法正确检测到“详细信息”div。你能告诉我该怎么做吗?
所以,这是我的第一个问题。我的第二个问题是:
在“详细信息” div 中,有一个输入框(<input type="text" />
)。我希望我的用户能够在那里输入,并在存储到数据库后显示。它就像 Facebook 的评论功能,我们对帖子发表评论,它会在几秒钟内存储并显示给我们,而无需重新加载整个页面。showUser()
旨在做到这一点。我对该showUser()
功能的尝试:
<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>
它是一个 Code Igniter 项目,所以“帮助”是一个“控制器”,而“评论”是该控制器中的一个函数。这是comment()
功能:
public function comment()
{
$this->load->model('model');
$topic=array();
$topic['user_id']=1;
$topic['topic_id']=1;
$topic['comment']=$_POST["q"];
$this->model->comment($topic);
}
此代码未将用户的评论保存在数据库中。
感谢您提出这个大问题!