-2

基本的に、私のフォームは、ページにロードされたテーブルでチェックされた登録ユーザーにクレジットを追加する必要があります。ユーザーが送信ボタンをクリックすると、チェックされた登録ユーザーに追加のクレジットが付与されます。私の問題は、ループテーブルでチェックされている行を取得する方法がわからないことです。これが私のコードです。

<form name="blah" method="POST" action="">
<?php
include("mysql_config.php");
// INITIAL OUTPUT WHEN THE PAGE IS LOADED
echo "<table class='sample'><tr>
<td></td>
<td><b>User ID</b></td>
<td><b>Username</b></td>
<td><b>First Name</b></td>
<td><b>Last Name</b></td>
<td><b>Credits</b></td>
</tr>";
$q = "SELECT * FROM users_credits";
$res = mysql_query($q);
$num_rows = mysql_num_rows($res);
for($i=0; $i<$num_rows; $i++){
    $db_field = mysql_fetch_assoc($res);
    $reg_id = $db_field['reg_id'];
    $credits = $db_field['credits'];
    $q2 = "SELECT username, fn, ln FROM reg_users WHERE reg_id = $reg_id";
    $res2 = mysql_query($q2);
    $db_field2 = mysql_fetch_assoc($res2);
    $username = $db_field2['username'];
    $fn = $db_field2['fn'];
    $ln = $db_field2['ln'];
    echo "<tr>
        <td><input type='checkbox' value='$i' name='add_credit'></td>
        <td>$reg_id</td>
        <td>$username</td>
        <td>$fn</td>
        <td>$ln</td>
        <td>$credits</td>
        </tr>";
}
?>
<input type="submit" name="save" value="Save" >
</form>

助けてくれる人に感謝します。:)

4

3 に答える 3

0

ボタンがクリックされたときに呼び出される Javascript 関数を記述します -

function updateFilter(){
        var tmp="";
        checkboxes = document.getElementsByName('<checkbox id>');
        for(var i in checkboxes){
            if(checkboxes[i].checked)
                tmp=tmp + "," + checkboxes[i].value;
        }
        tmp=tmp.substring(1);   
        parent.window.location.href="<file to open>.php?p=" + tmp;
    }

チェックボックスの HTML は次のようになります -

<input type="checkbox" name="p<checkbox id>" value="<?php echo $row['Product_ID']; ?>"

理想的には、これはチェックボックスのすべての値を連結し、それをパラメーター (この場合は PHP) として渡し、次のページで次のようにデコードできます。

$r=mysql_query("select * from product_master where Product_ID in (" . $p.")");

または分割を使用します。チェックボックスの値は、テキストではなく ID にすることをお勧めします。

于 2012-11-11T05:40:21.683 に答える
0

チェックボックスを次のように変更します。

<input type='checkbox' value='$reg_id' name='add_credit[]'>

次に、アクションに投稿すると、チェックされたすべてのユーザーの reg_id のリストが表示されます。$_POST['add_credit'] でアクセスできる配列になります

于 2012-11-11T05:41:44.317 に答える
0

ページを次のように更新してください:

<form name="blah" method="POST" action="update.php">
<?php
include("mysql_config.php");
// INITIAL OUTPUT WHEN THE PAGE IS LOADED
echo "<table class='sample'><tr>
<td></td>
<td><b>User ID</b></td>
<td><b>Username</b></td>
<td><b>First Name</b></td>
<td><b>Last Name</b></td>
<td><b>Credits</b></td>
</tr>";
$q = "SELECT * FROM users_credits";
$res = mysql_query($q);
$num_rows = mysql_num_rows($res);

    while($db_field = mysql_fetch_assoc($res))
    {
    $reg_id = $db_field['reg_id'];
    $credits = $db_field['credits'];
    $q2 = "SELECT username, fn, ln FROM reg_users WHERE reg_id = $reg_id";
    $res2 = mysql_query($q2);
    $db_field2 = mysql_fetch_assoc($res2);
    $username = $db_field2['username'];
    $fn = $db_field2['fn'];
    $ln = $db_field2['ln'];
    echo "<tr>
        <td><input type='checkbox' value='".$reg_id."' name='add_credit[]'></td>
        <td>$reg_id</td>
        <td>$username</td>
        <td>$fn</td>
        <td>$ln</td>
        <td>$credits</td>
        </tr>";
}
?>

update.php でフォーム アクションを次のようにします。

<?php
$users=$_REQUEST['add_credit'];

if(is_array($users))
{
foreach($users as $key=>$val)
{

echo $val;

}

}
?>

ここでは、ユーザー ID を配列で取得します。

于 2012-11-11T05:41:49.623 に答える