如何在php循环中显示隐藏的数据类型


How to show hidden data types in php loop?

有没有一种方法可以为php循环中动态填充的数据切换显示/隐藏?

我一直在努力找出最好的方法来做到这一点,但我只是觉得我知道的不够多,无法使这一点发挥作用,我也不确定什么是最佳实践。

情况如下:

  1. 申请人通过我的网站提交摘要,并进入数据库
  2. 管理员登录并查看提交的结果——这是一个包含一些基本信息的表,但没有摘要文本,因为太长了
  3. 我想要一个按钮(或其他东西!),它将显示/隐藏摘要文本,同时让管理员有机会将摘要分配给会话

我以为我可以做一个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>
  ';
 }
 ?>

所以你可以看到,有一个按钮:<按钮>查看/分配</按钮>

并且存在两个<tr>具有"display:none"样式。

这个表在填充时看起来真的很好,我只需要一个好的方式让管理员看到抽象文本,但我似乎无法成功地指向php中的jquery函数。关于处理这个问题的最佳方法有什么建议吗?

类似的东西?演示

 example:<br />
    <button onClick="$('.hide').toggle();">click me</button>
    <table>
         <tr style="display:none;" class="hide">
            <td colspan="3">abstract text</td>
         </tr>
         <tr style="display:none;" class="hide">
           <td colspan="3">
              <form action="assign_session.php" method="post" id="form">
                <label for="abstract_category">Assign Session:</label>
                <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>
    </table>

我使用jquery来切换(显示/隐藏)需要显示/隐藏的元素。

此外,您在这段代码上有几个错误(比如您没有关闭第一个td,没有以正确的方式使用标签)。

您可以使用jquery来执行类似的操作

假设您单击"显示"

$('#my_button').click(function(){
                      $('#hidden_div').val('hidden',false);});

或用于CSS

$('#my_button').click(function(){
                      $('#hidden_div').css('display','all');});