-3

テーブル行とチェックボックスを印刷するこのコードがあります。チェックされた行を別のphpファイルに印刷する必要があります..どうすればよいですか?

私はsql = select $checkbox1、checkbox2のようなものが必要ですが、これを行う方が良いです....

<form action='report.php' method='post'>

<?php // Script 12.7 - sopping.php

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('db_up', $db);

echo "<table border='1' class='tabtext'>";

$result = mysql_query("SELECT * FROM hostess");
$numrows = mysql_num_rows($result);
$numfields = mysql_num_fields($result);

// show headers
echo '<thead><tr>';
for ($field = 0; $field < $numfields; $field++) {
    $field_name = mysql_field_name($result, $field); // instead of $i
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>';
}

echo '</tr></thead>';

echo '<tbody>';
for ($row = 0; $row < $numrows; $row++) {
    $data = mysql_fetch_assoc($result);
    echo '<tr>';
    for ($field = 0; $field < $numfields; $field++) {
        $field_name = mysql_field_name($result, $field);
        if (isset($_POST['checkbox'][$field_name])) {
            echo '<td>' . $data[$field_name] . '</td>';
        }
    }
    echo '</tr>';
}
echo '</tbody>';
echo '</table>';


?>
<input type='submit' value='Submit' />
</form>
4

1 に答える 1

1

Ok。したがって、最初にこのファイルだけでフォームを生成する必要があります。テーブルのレイアウト方法に基づいて、最初の行がフィールド名で、2 番目の行がチェックボックス自体を含む 2 つの行が必要です。だからここにあります:

<form action='report.php' method='post'>
<?php // Script 12.7 - sopping.php

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('db_up', $db);

echo "<table border='1' class='tabtext'>";

$result = mysql_query("SELECT * FROM hostess");
$numrows = mysql_num_rows($result);
$numfields = mysql_num_fields($result);

// show headers
echo '<thead><tr>';
for ($field = 0; $field < $numfields; $field++) {
    $field_name = mysql_field_name($result, $field);
    echo '<th>'. $field_name . '</th>'; // only the field name
}    
echo '</tr></thead>';
echo '<tbody><tr>';
for ($field = 0; $field < $numfields; $field++) {
    $field_name = mysql_field_name($result, $field);
    echo 
        '<td>
             <input type="checkbox" name="checkbox['.$field_name.']" value="1"/>
        </td>';
}
echo '</tr></tbody>';
echo '</table>';
?>
<input type='submit' value='Submit' />
</form>

次に、フォームを送信するファイル (report.php) で、投稿した内容をキャッチし、送信したチェックボックスのみを示す新しいテーブルを表示します。これがあなたができることの例です。

<?php
// within report.php (THIS IS AN EXAMPLE ONLY)

// check if the checkbox fields were submitted
// and if not empty we know that items have been checked.
if(isset($_POST['checkbox']) && !empty($_POST['checkbox'])){
  // iterate through the checked items.
  // this is an associative array because you gave the items a key
  foreach($_POST['checkbox'] as $field => $value){
    // do some stuff
    echo "<p>Checked Field: $field<br/>Value:$value</br></p>";
  }
} else {
  // display a message saying that nothing was submitted
  // you could also display some error or redirect back to the form etc.
  echo '<p>No Check boxes have been checked</p>';
}?>

ボールを転がすにはこれで十分だと思います。試してコードを実行し、動作を確認してください。フォームが意図したとおりに表示され、送信が正しく実行され、少なくとも何かが表示されることを確認してください。必要に応じて、サンプル コードを使用してください。何かが表示された場合は、そこに到達したことを意味します。次に、そのサンプル コードを実際に表示したいものに置き換えることができます。これ以上、私は本質的にあなたのためにあなたのコードを書いているでしょう. 試してみます。幸運を。

于 2012-06-18T14:49:00.760 に答える