0

ユーザーがMySQLデータベースのデータを編集するための簡単な手段としてモーダルを使用しようとしています。SELECTステートメントで取得された最初の行のみがモーダルで使用できるようで、その理由がわかりません。言い換えると、最初が顧客の名前である、いくつかの列を持つテーブルを想像してください。私の目標は、名前をクリックし、フォームでモーダルを表示し、そのフォームの結果を渡して、PHPを使用してデータベースを更新できるようにすることです。ただし、どの名前をクリックしても、最初の結果の行に関連する値のみが渡されます。

テーブル'Item'には、テーブルに存在するすべての行の情報が含まれています。

$personIDを介して渡されGET、特定の従業員の顧客を選択する手段です。

モーダルdivはPHPwhile句に含まれています。

モーダルに含まれるフォームは、情報を基本的なPHP更新スクリプトに渡します。

どうもありがとう、マイク

PHP Select Stmt:

    <?php
        $query = "SELECT * FROM item WHERE personID = $personID";
        $result = mysql_query($query);
        while($info=mysql_fetch_array($result)){
        $itemID = $info['itemID'];
    ?>  

リンク(多くの1つ。このセクションを省略しました):

    <div class='row-fluid'>
        <div class='span3'>
            <a href="#customerModal" data-toggle="modal"><?php echo($info['itemCustomer']); ?></a>
        </div>
    </div>  

モーダル:

<div id="customerModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel"><?php echo($info['itemID']); ?></h3>
</div>
<div class="modal-body">
    <form action='pipelineEdit.php' method='post'>
        <input placeholder='Customer Name' style='width:50%' type='text' name='editValue' id='editValue'>
        <input type='hidden' value='itemCustomer' name='editField' id='editField'>
        <input type='hidden' value='<?php echo($info['itemID']); ?>' name='itemID' id='itemID'>
        <input type='hidden' value='<?php echo($personID); ?>' name='personID' id='personID'>
</div>
          <div class="modal-footer">
            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
            <button class="btn btn-primary">Save changes</button>
          </div>
          </form>
        </div>

PHPの終わりはwhileモーダルの後に来ます:

    <?php } ?>
4

3 に答える 3

3

同じ ID = customerModal で複数の div を印刷しています

ID は一意である必要があるため、リンクはループで出力された最初のモーダルのみを開きます。

変化する:

<div id="customerModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

に:

<div id="customerModal<?php echo $info['itemID']; ?>" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">

と:

<a href="#customerModal" data-toggle="modal">

に:

<a href="#customerModal<?php echo $info['itemID']; ?>" data-toggle="modal">
于 2013-01-04T18:32:01.493 に答える
0

使用する

while($info=mysql_fetch_array($result)){
    $itemID = $info['itemID'];

$itemId に割り当て続けることを意味します。最後に、$itemId は最後に割り当てられた値のみを保持します。

于 2013-01-04T18:30:25.167 に答える
0

モーダルは id で識別されます。jQuery では、その ID を持つ最初の DOM 要素のみが参照されます。正しいモーダルを参照するには、次のようにデータベース ID を要素 ID に追加します。

<div id="customerModal<?php echo $info['itemID']; ?>"

リンクには、それも追加する必要があります。

<a href="#customerModal<?php echo $info['itemID']; ?>" data-toggle="modal">

ID セレクターの使用に関する詳細については、 こちらの jQuery ドキュメントを参照してください。

于 2013-01-04T18:32:44.850 に答える