Php .load()不带开关的小零件

Php .load()不带开关的小零件,php,jquery,html,load,toggle,Php,Jquery,Html,Load,Toggle,我有一个对话流,每3秒用jQuery的.load()刷新一次 这个系统可以工作,但在每次对话中,我都有一个答案按钮,该按钮使用.toggle()滑动表单(文本区域和提交按钮) 为了显示流,我在PHP中使用了while 我的问题是,当通过.load()加载时,单击“应答”按钮,表单将再次隐藏,文本也将包含在内 <div id="the_river_loading"> <?php $sql_the_river = 'SELECT u.nickname, u.firstname, u

我有一个对话流,每3秒用jQuery的.load()刷新一次

这个系统可以工作,但在每次对话中,我都有一个答案按钮,该按钮使用.toggle()滑动表单(文本区域和提交按钮)

为了显示流,我在PHP中使用了while

我的问题是,当通过.load()加载时,单击“应答”按钮,表单将再次隐藏,文本也将包含在内

<div id="the_river_loading">
<?php
$sql_the_river = 'SELECT u.nickname, u.firstname, u.lastname, u.main_photo, u.locality,
             id_conversation, id_messages, owner, participants, text, date
          FROM users AS u
          INNER JOIN the_river
          ON u.nickname = owner
          WHERE answer = 0
          ORDER BY date DESC';
$result_the_river = mysqli_query($mysqli, $sql_the_river);

$count = 0;
while ($data_the_river = mysqli_fetch_assoc($result_the_river))
{
   $count++;
   echo '<div class="message_container_news">'; // Start block conversation

   echo '<a href="/profile/' . $nickname . '" class="name_links" style="vertical-align: top; font-size: 16px;">
   <img src="' . $main_photo . '"  title="' . $name . '" class="members_actu_photo" />' . $name . '</a>
   <span style="vertical-align: top">, ' . $locality . '</span><span style="float: right; font-size: 12px;">Posté le Octobre 25, 2012</span>
   <p style="margin-top: 5px;">' . $data_the_river['text'] . '</p>
   <div class="btnAnswer_nb">' . $count_answer . '</div> Answers
   <a href="/news/' . $data_the_river['id_conversation'] . '" style="margin-left: 100px; display: inline;" class="global_links">See conversation</a>

   <div class="btnAnswer_news" id="btnAnswer_news_id_' . $count . '">Reply</div>
   <form method="post" id="display_form_id_' . $count . '" action="" style="display: none;">
      <br />
      <textarea name="answer_text"></textarea><br />
      <input type="submit" name="answer_valid_id_' . $count . '" value="Post" />
   </form>
   </div>'; // End block conversation
}
?>
</div>

<script type="text/javascript">     
$(".btnAnswer_news").live("click", function(){
   var num_show = this.id.replace(/\D/g, "");
   $("#display_form_id_" + num_show).toggle("fast");
});

var auto_refresh = setInterval(
   function() {
      $("#the_river_loading").load("/home" + " .message_container_news");
   }, 3000
);
</script>

$(“.btnAnswer_news”).live(“单击”,函数(){
var num_show=this.id.replace(/\D/g,“”);
$(“#显示#表单(id)”+num_显示)。切换(“快速”);
});
var auto_refresh=setInterval(
函数(){
$(“#河#装载”).load(“/home”+”.message#container_news”);
}, 3000
);

很高兴阅读您的文章。

这是因为如果您再次将内容加载到容器中,则根据js应用的样式将被删除(因为它们是通过style=”“应用的,并且会被刷新)。您应该将表单和按钮移动到另一个Div,该Div不在加载Div中。

如果我正确理解您的问题(您的描述不是很清楚),您只想在再次单击时不要隐藏表单,因为使用
show()
而不是
toggle()
,所以请替换以下行:

$("#display_form_id_" + num_show).toggle("fast");
对于这一个:

$("#display_form_id_" + num_show).show("fast");
如果要保留textarea的文本,可以这样做:

var auto_refresh = setInterval(
   function() {
      tx = $("#the_river_loading textarea[name='answer_text']").val();
      $("#the_river_loading").load("/home" + " .message_container_news", function(){
          $("#the_river_loading textarea[name='answer_text']").val(tx);
      });
   }, 3000
);

谢谢你的回答,是的,但是怎么做呢?即使textarea仍然“打开”,所包含的文本在重新加载后删除。不起作用。你明白了吗?谢谢。但是文本在所有textarea中打印,即使使用.show(),textarea也会在3秒钟后隐藏,因为全局div是刷新的。