0

私がこれに完全に間違ってアプローチしている場合、誰かが私を助けてくれるか、正しい方向に向けてくれることを願っています。

私の意図は、特定の基準に基づいてデータベースから適格なユーザーを選択することです。返されてページに表示されるユーザーのうち、管理者ユーザーはそれらのユーザーから選択してデータベース内の別のテーブルに追加できる必要がありますが、今回は料金がかかります。

ユーザーが正しく表示され、料金をチェックボックスの値に追加しましたが、ユーザーを新しいテーブルに再入力する方法がわかりません。

以下のコードのサンプルが、これでどこに行くのかを明確にするのに十分明確であることを願っています.

これが最も効率的なアプローチではない可能性があることを認識しています。提案やアドバイスは大歓迎です。

ありがとう!

適格なユーザーを選択する PHP

$sql = $db->prepare("       
        SELECT *
        FROM users                                              
        WHERE user_registration = 1
        ");
$sql ->execute();
$users = $sql ->fetchAll(PDO::FETCH_OBJ);

チェックボックス付きの適格なユーザーを表示する HTML と PHP

<table>
    <thead>
        <th class="checked">Select</th>                            
        <th>First Name</th>
        <th>Last Name</th>
        <th>Birth Date</th>
        <th>Fee</th>
    </thead>

    <tbody>

    <?php foreach($users as $entry): ?>

        <tr>
            <td class="checked">
                <input type="checkbox" name="checked" value="<?php echo $entry->fee; ?>"/> 
            </td>
            <td class="first-name"><?php echo $entry->first_name; ?></td>
            <td><?php echo $entry->last_name; ?></td>
            <td><?php echo $entry->birthdate; ?></td>
            <td><?php echo $entry->fee; ?></td>                                     
        </tr>
    <?php endforeach; ?>

    </tbody>
</table> 


<div id="total" name="total">$0
</div>

各ユーザーの料金を計算するJS

$(document).ready(function() {

    $('.option').click(function(){

        var total = 0;

        $('.option:checked').each(function(){

            total += parseInt($(this).val());

        });

        $('#total').html('$' + total);

    });

});
4

1 に答える 1

1

それ以外の

<input type="checkbox" name="checked" value="<?php echo $entry->fee; ?>"/>

行う

<input type="checkbox" name="checked" value="<?php echo $entry->id; ?>"/>

次に、チェックボックスがチェックされてフォームが送信されると、そのユーザーのIDがあり、簡単に実行できます

INSERT INTO table2
SELECT FROM table1 WHERE table1.id IN (/* Your comma separated IDs here*/)
于 2012-06-12T15:51:47.730 に答える