0

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>
  ';
 }
 ?>

ご覧のとおり、ボタンがあります: < button >View/Assign</ button >

そして、「display: none」スタイルの < tr > が 2 つあります。

テーブルにデータが入力されると、テーブルは非常に見栄えがよくなります。管理者が抽象的なテキストを表示するための適切な方法が必要なだけですが、php 内の jquery 関数を正常にポイントできないようです。これを処理する最善の方法について何かアドバイスはありますか?

4

2 に答える 2

1

このようなもの?デモ

 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 を閉じていない、ラベルを正しく使用していないなど)。

于 2012-08-21T22:30:49.757 に答える
0

jqueryを使用して、このようなことを行うことができます

[表示] をクリックするとします。

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

またはCSSの場合

$('#my_button').click(function(){
                      $('#hidden_div').css('display','all');});
于 2012-08-22T01:26:59.357 に答える