【发布时间】:2012-08-21 21:55:25
【问题描述】:
有没有办法为在 php 循环中动态填充的数据切换显示/隐藏?
我一直在试图找出最好的方法来做到这一点,但我只是认为我知道的不够多,无法完成这项工作,而且我不确定最佳做法是什么。
情况如下:
- 申请人通过我的网站提交摘要,他们进入数据库
- 管理员登录并查看提交的结果- 这是一个包含一些基本信息的表格,但没有摘要文本,因为它太长了。
- 我想要一个按钮(或其他东西!)来显示/隐藏摘要文本,同时让管理员有机会将摘要分配给会话。
我以为我可以做一个 jquery 显示/隐藏按钮的事情,但我无法让它工作。这是代码 - 请注意,这只是开发,并非所有安全功能都在这里。我这样说是因为不可避免地有人会评论会话或转义字符串等。
<?php
include_once('xxx.php');
$conn = new connectorfunction();
$query = "SELECT * FROM tablename ORDER BY abstract_id";
$result = mysql_query($query);
$numfields = mysql_num_fields($result);
$data = array();
$flist = array();
for($i=0;$i<$numfields;$i++)$flist[] = mysql_field_name($result,$i);
$data[0] = $flist;
while($row = mysql_fetch_assoc($result)){
$data[] = $row;
print '
<tr>
<td>
<span style="text-decoration: underline">Author:</span>
<br />
' . $row['abstract_author'] .'
</td>
<td>
<span style="text-decoration: underline">Title:</span>
' . $row['presentation_title'] . '
<br />
<button>View/Assign</button>
</td>
<td>
';
if ($row['abstract_category'] === NULL ) {
print '
Needs Session
';
}
else {
print '
Assigned
';
}
print'
<tr style="display:none;">
<td colspan="3">
'. $row['abstract_text'] .'
</tr>
<tr style="display:none;">
<td colspan="3">
<form action="assign_session.php" method="post" id="form">
<label for="abstract_category">Assign Session:
<input type="hidden" name="abstract_id" value="'. $row['abstract_id'] .'" />
<input type="radio" name="abstract_category" value="session1" />Session One
<input type="radio" name="abstract_category" value="session2" />Session Two
<input type="radio" name="abstract_category" value="notapplicable" />Not Applicable
<button type="submit" formaction="assign_session.php">Assign</button></label>
</form>
</td>
</tr>
';
}
?>
所以你可以看到,有一个按钮:View/Assign button >
还有两个带有“display:none”样式的
表格在填充后看起来非常棒,我只需要一种让管理员查看抽象文本的好方法,但我似乎无法成功指向 php.ini 中的 jquery 函数。关于处理这个问题的最佳方法有什么建议吗?
【问题讨论】:
-
为什么不使用模式,例如有一个“显示摘要”按钮,点击模式打开,你可以轻松地显示抽象文本...
-
与其尝试
echo或print大量的标记,不如根据需要跳入和跳出PHP;如果只是为了可读性。 -
@bracketworks 虽然我喜欢这个想法——这可能是我缺乏知识从这里传来的——但如果我要跳进跳出 php,我不需要做整个重新连接数据库?这似乎比打印要多得多……我缺少什么知识?
-
@MelanieSumnerSmith 不;跳转“进出 PHP”不会导致任何数据丢失、服务连接或任何事情。您并没有真正切换模式,您只是在缓冲/刷新非 PHP 数据;通常是 HTML。
标签: php javascript jquery mysql