0

ユーザーがデータ行に関する情報を入力する必要があるフィールドを持つポップアップ フォームに問題があります。

彼/彼女が入力したものは、更新クエリを実行するテーブルに挿入する必要があります...しかし、私の問題は、フォームがソースコードのデータベースからのIDをエコーすることですが、マウスオーバーしても表示されませんボタン。

ボタンを押すと、最初の ID のクエリのみが実行されます。そして、他のものは、1 つずつ削除されるまで、2 番目などのみを表示します。何が間違っているのかわかりません:

    <?php include_once('classes/profile.class.php');?>
<?php include_once('header.php');?>

<h1>

    <?php _e('Traffic Fines Adjudication'); ?>

</h1>

<br>

<div class="tabs-left">
    <?php

    $result = "SELECT * FROM login_fines_adjudicated WHERE active = 0 ORDER BY date_issued";
    $stmt = $generic->query($result);

//this function will take the above query and create an array
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
  {
        //do nothing
 //with the array created above, I can create variables (left) with the outputted array (right)
    $id = $row['id'];
    $date = $row['date_added_db'];
    $date_issued = $row['date_issued'];
    $time_arrive = $row['time_arrived'];
    $time_depart = $row['time_departed'];
    $ref = $row['reference_code'];
    $reason = $row['violation_reason'];
    $location = $row['location'];
    $bay = $row['bay_number'];
    $licence = $row['licence'];
    $punit = $row['parking_unit'];
    $value = $row['value'];
    $operator = $row['operator'];
    $operator_id = $row['operator_id'];


    //If date field is empty display nothing! Or sentence...

    if(!empty($date))
    {
?>

    <table class="table">
        <thead>
        <tr>
            <th>Photo</th>
            <th>Date Added</th>
            <th>Date Issued</th>
            <th>Time Arrived</th>
            <th>Time Departed</th>
            <th>Reference Code</th>
            <th>Violation Category</th>
            <th>Location</th>
            <th>Bay Number</th>
            <th>Licence Plate</th>
            <th>Parking Unit</th>
            <th>Amount</th>
            <th>Operator Name</th>
            <th>Operator ID</th>
            <th>Action</th>
        </tr>
        </thead>
        <tr>
            <td><img class="photo" src="photos/no-available.jpg" /></td>
            <td><?php echo $date; ?><br /></td>
            <td><?php echo $date_issued; ?></td>
            <td><?php echo $time_arrive; ?></td>
            <td><?php echo $time_depart; ?></td>
            <td><?php echo $ref; ?></td>
            <td><?php echo $reason; ?></td>
            <td><?php echo $location; ?></td>
            <td><?php echo $bay; ?></td>
            <td><?php echo $licence; ?></td>
            <td><?php echo $punit; ?></td>
            <td><?php echo $value; ?></td>
            <td><?php echo $operator; ?></td>
            <td><?php echo $operator_id; ?></td>
            <td>
            <form action="approve.php" method="post">
            <input type="hidden" name="delete_id" value="<?php echo $row['id']; ?>" />
            <p><a href='approve.php?id=<?php echo $id; ?>'><button url="#" class="btn btn-primary">Approve</button></a></p>
            </form>
                    <div id="reject-form" class="modal hide fade">
                        <div class="modal-header">
                            <a class="close" data-dismiss="modal">&times;</a>
                            <h3><?php _e('Reject Reason'); ?></h3>
                        </div>
                        <div class="modal-body">
                            <div id="message"></div>
                    <form action="reject.php" method="post" name="rejectform" id="rejectform" class="form-stacked rejectform normal-label">
                        <div class="controlgroup rejectcenter">
                                <div class="control">
                                    <input id="reject" name="reject" type="text"/>
                                </div>
                        </div>
                    <input type="hidden" name="delete_id" value="<?php echo $id; ?>" />
                    </form>
                </div>
                <div class="modal-footer">
                    <a href='reject.php?id=<?php echo $id; ?>'><button data-complete-text="<?php _e('Done'); ?>" class="btn btn-primary pull-right" id="rejectsubmit"><?php _e('Submit'); ?></button></a>
                    <p class="pull-left"><?php _e('Please give a short reason for rejecting.'); ?></p>
                    </div>
                </div>
                </form>
            <p><a data-toggle="modal" href="#reject-form" id="rejectlink" tabindex=-1><button url="#" class="btn btn-primary">Reject</button></a></p>
            </td>
        </tr>
    </table>


<?php 
}
}
?>
</div>

<?php include ('footer.php'); ?>

どんな助けでも大歓迎です!

4

1 に答える 1

0

id問題は、同じ属性を持つ多くの要素があることです。一般に、 「id = [...] この名前はドキュメント内で一意でなければならない」というHTML Specidに準拠していないことは言うまでもなく、同じ を持つ要素を複数持つことは本当に悪い習慣です。 . したがって、一意であることを確認するためにすべての ID を修正することを強くお勧めします (たとえば、現在のエントリの ID を追加するなど)。

質問で説明した特定の問題の原因は次のとおりです。

  1. すべてのテーブルに対してポップアップ ダイアログ ( div) を id で定義しますreject-form
  2. 次に、「拒否」ボタンを とのリンクとして実装しhref="#reject-form"ます。
  3. そのため、「拒否」ボタンをクリックすると、ユーザーは DOM で見つかった最初の要素id="reject-form"(常に最初のエントリのダイアログ) に移動します。

これを修正するにはid、ポップアップ ダイアログと「拒否」ボタンの 2 つの場所の属性に各エントリの ID を追加します。

// Replace that:
<div id="reject-form" class="modal hide fade">
// with this:
<div id="reject-form-<?php echo $id; ?>" class="modal hide fade">

// Replace that:
<a data-toggle="modal" href="#reject-form" id="rejectlink" tabindex=-1>
// with this:
<a data-toggle="modal" href="#reject-form-<?php echo $id; ?>" id="rejectlink" tabindex=-1>
于 2013-05-31T13:18:21.417 に答える