【发布时间】:2011-12-28 03:36:27
【问题描述】:
我有一个 while 循环来显示选择查询的结果。然后对于查询返回的每个结果,都有一个链接,一旦单击,将显示一个消息表单。再次单击该链接,消息表单将被隐藏。它是使用 JQuery 插件制作的。现在的问题是,如果我点击链接,所有结果都会显示消息表单,而不是只显示一个,这应该来自点击链接的结果。代码如下所示:
PHP + HTML
<?php
$query = mysql_query(......) or die(mysql_error());
while($row = mysql_fetch_assoc($query)){
$id = $row['Id'];
echo "<a class='hideMessageForm' href='#foo?id=" . $row['Id'] . "'>" . $row['Name'] . "</a>" .
"<div id='foo' class='showMessageForm'>
<form action='process.php' method='post'>
<input type='hidden' name='id' value='" .$id "'/>
<input type='text' name='message' value=''/>
<input type='submit' name='sendMessage' value='Send Message'/>
</form>
</div>";
}
?>
JavaScript
$(document).ready(function(){
$(".showMessageForm").hide();
$(".hideMessageForm").show();
$('.hideMessageForm').click(function(){
$(".showMessageForm").slideToggle();
});
});
让我解释一下我想要发生的事情
例如,查询返回 3 个结果(结果 #1、#2、#3)。每个结果都显示了指向 foo div 的链接。如果我单击结果#1 中的链接,#2 和#3 也会弹出消息表单。单击 3 个结果中的任何一个中的链接将显示 3 个消息表单。我只希望选择链接的结果是唯一一个弹出消息表单的结果。谢谢!
【问题讨论】:
-
也许在点击另一个链接之前使用 .remove?
-
@RPM 怎么样?抱歉,我对 Jquery 很陌生。
-
不知道你想在这里得到什么。您生成一长串带有从数据库中提取的 ID 号的
<a>标签。然后输出一个带有从查询字符串中提取的 ID 的表单?这两者有什么关系? -
你能提供更多细节吗?您是说当您单击弹出窗口时,它会显示所有结果,而不仅仅是链接的结果?如果是这样 - 这听起来像是 PHP 错误。或者,您是说您只希望一次能够点击其中一个链接?如果您可以链接一个实时示例,它可能会有所帮助。
-
点击链接后,您的数据是否会进入 showMessageForm?它与之前点击的数据重叠,对吗?然后在 click)function() $('.showMessageForm').remove();
标签: php javascript jquery mysql html