2

私はこれに対する答えを見つけようとしました-そして、それは非常に簡単に修正できると思います.

イベントのリストを含むHTMLフォームがあり、それぞれにチェックボックスがあります(name="registrations[]"値としてデータベースから取得されたID)。顧客は、参加するかどうかを示すボックスにいくつでもチェックを入れることができます。

各イベントの横には 2 番目のチェック ボックス ( name="lunch[]") があり、顧客はこれを使用して、そのイベントでランチが必要かどうかを示すことができます。

これで、次を使用して複数のイベントをデータベースに挿入できます。

foreach ($_POST['registrations'] as $registration) {
/// do database work
}

($registrationすべての予約のイベント ID を保存するために使用されます)。

私の質問は次のとおりです。その 2 番目のチェックボックスの値をデータベースに保存するにはどうすればよいですか? いつもお世話になっております。

編集 - 要求に応じてデータベース スキーマ:

CREATE TABLE IF NOT EXISTS `bookings2` (
  `booking_id` int(5) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `contact` varchar(150) NOT NULL DEFAULT '',
  `company` varchar(150) NOT NULL DEFAULT '',
  `service` varchar(50) NOT NULL DEFAULT '',
  `telephone` varchar(50) NOT NULL DEFAULT '',
  `email` varchar(150) NOT NULL DEFAULT '',
  `website` varchar(250) NOT NULL DEFAULT '',
  `address` text NOT NULL,
  `cars` char(2) DEFAULT NULL,
  `size` varchar(10) DEFAULT NULL,
  `advertising` varchar(15) NOT NULL DEFAULT '',
  `display` char(3) DEFAULT NULL,
  `bag` char(3) DEFAULT NULL,
  `lunch` char(3) DEFAULT NULL,
  `masterclass` char(3) DEFAULT NULL,
  `other_info` text,
  `promo_code` varchar(50) NOT NULL,
  `electric` char(3) DEFAULT NULL,
  `event_id` varchar(100) NOT NULL DEFAULT '',
  `booking_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`booking_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=104 ;
4

2 に答える 2

1

ランチ チェックボックスの値をイベント ID に設定します - 登録チェックボックスと同じように。

foreach ($_POST['registrations'] as $registration) {

    $lunch = in_array($registration, $_POST['lunch']) ? 'Yes' : 'No';

    // do the insert with $lunch variable which is now Yes or No
    // INSERT INTO bookings2 (...) VALUES (..., '$lunch', ...)
}

これにより、ランチ変数がYesorとして保存されますNo- これは機能しますが、 boolean を保存する方が効率的1 or 0です。

于 2013-01-04T12:16:01.093 に答える
0

以下のようにフォームを作成できます。

<form name="abc" method="post">
<input type="checkbox" name="registrations[1]" value="1"> aa &nbsp; 
   <input type="checkbox" name="lunch[1]" value="1"> aa &nbsp; <br>
<input type="checkbox" name="registrations[2]" value="2"> BB &nbsp;
   <input type="checkbox" name="lunch[2]" value="2"> aa &nbsp;<br>
<input type="checkbox" name="registrations[3]" value="3"> CC &nbsp; 

ああ  

送信すると、次のような値が取得されます。

Array
(
    [lunch] => Array
        (
            [1] => 1
            [2] => 2
            [3] => 3
        )

    [registrations] => Array
        (
            [2] => 2
            [3] => 3
        )

    [submit] => submit
)

php foreach のようにループできるよりも -

foreach ($_POST['registrations'] as $key=>$registration) {
   //you can access lunch value as
   $lunch  = isset($_POST['lunch'][$key]) ? $_POST['lunch'][$key] : 0;
}
于 2013-01-04T12:15:43.237 に答える