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

时间:2012-08-21 21:55:26

标签: php javascript jquery mysql

有没有办法切换显示/隐藏在php循环中动态填充的数据?

我一直在努力寻找最好的方法来做到这一点,但我只是觉得我不知道做这项工作,我不确定最佳做法是什么。

情况如下:

  1. 申请人通过我的网站提交摘要,并进入数据库
  2. 管理员登录并查看提交的结果 - 这是一个包含一些基本信息的表,但不包含抽象文本,因为它太长了。
  3. 我想要一个按钮(或其他东西!)来显示/隐藏抽象文本,同时让管理员有机会将摘要分配给会话。
  4. 我以为我可以做一个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>
      ';
     }
     ?>
    

    所以你可以看到,有一个按钮:&lt;按钮&gt;查看/分配&lt; /按钮&gt;

    有两个&lt; tr>使用“display:none”样式。

    该表在填充时看起来非常棒,我只需要管理员查看抽象文本的好方法,但我似乎无法成功指向php中的jquery函数。有关处理此问题的最佳方法的任何建议吗?

2 个答案:

答案 0 :(得分:1)

这样的东西? demo

 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,没有以正确的方式使用标签)。

答案 1 :(得分:0)

你可以使用jquery做这样的事情

假设您单击显示

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

或CSS

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