0

チェックボックスをオンにして、ユーザーがテーブルから表示するデータを選択できるフォームが必要です。ユーザーが2列のみを表示したい場合は、2列のみを表示する必要があります。コードを持っていますが、送信しても何も表示されません。コードは次のとおりです。

<form name="form1" method="post" action="view_emp.php">
<p>Select Option 
<input type="checkbox" name="number[]" value="name" />Name
<input type="checkbox" name="number[]" value="hired"  />Date Hired 
<input type="checkbox" name="number[]" value="basic" />Basic Pay
<input type="checkbox" name="number[]" value="incentives">Incentives
</p> 
<input type="submit" name="Submit" value="Submit"> 
</form> 

これが私のphpです:

<?php 
$db = mysql_connect('localhost', 'root', '');
mysql_select_db('eis', $db) or die (mysql_error());

$employee = array();

foreach ($_POST['number'] as $employee) {
    $number = mysql_real_escape_string($number);
    $employee[] = "'{$number}'";
}
$sql = "select * from employees where type in (" .implode(", ", $number). ")";
$result = mysql_query($sql); 
while ($row = mysql_fetch_array($result)) { 
 print $row['name']; 
} 
?>

私はPHPの初心者であり、教祖や専門家の助けが必要です。ありがとうございました...

4

1 に答える 1

0

PHP の implode() および destroy() 関数が役立つ場合があります。implode($_POST['number']) を使用すると、POST または GET 属性 'number' をカンマ区切りのリストに簡単に変換できます。これは、1 つの MySQL フィールド、おそらくユーザー テーブルの列に簡単に格納できます。

ユーザーが後でフォームを編集できるようにする場合は、チェックボックスをループでレンダリングし、データベースから取得した「展開された」リスト (配列) に名前が存在する各チェックボックス要素に「checked」属性を追加します。

これは基本的にシリアライゼーション/デシリアライゼーションです。serialize()、unserialize() または json_encode()、json_decode() を含む他の方法があります。しかし、あなたのデータは基本的なリストとして簡単にモデル化できるように見えるので、さらに単純に保つことができます。

于 2013-03-05T02:50:41.023 に答える