フォームを送信して処理するたびに、このエラー タイプのエラーが発生します。
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 1
Filename: controllers/register_grp.php
Line Number: 81
動的に作成されたチェックボックスを含むこのフォームがあり、その数はユーザーによって決定されます。
<input class='main' type='checkbox' name='tshirttick[1]' id='tshirttick1' value='Yes' />
<input class='main' type='checkbox' name='tshirttick[2]' id='tshirttick2' value='Yes' />
...
送信時に、次のコードで処理します。
$withtshirt = $this->security->xss_clean($this->input->post('tshirttick'));
for ($i = 0; $i < $num_of_members; $i++)
{
if ($withtshirt[$i] == "Yes")
{
$include_shirt = 'Y';
$ticketcost += 150;
$tshirtsize[$i] = $this->db->escape($tshirtsize[$i]);
}
else
{
$include_shirt = 'N';
$tshirtsize[$i] = "-";
$tshirtsize[$i] = $this->db->escape($tshirtsize[$i]);
}
$id = $this->register_model->addParticipant($i, $tshirtsize[$i], $include_shirt);
}
モデルaddParticipantは基本的にデータベースに行を挿入し、$this->db->insert_id();を返します。
エラーが指す行番号 81 は次の行です。
if ($withtshirt[$i] == "Yes")
行は実際には正常に挿入されますが、送信時にこのエラーの複数のインスタンスが出力され、ページが別のページにリダイレクトされなくなります。ループが繰り返されるたびにエラーが出力されると思います。
どうすればこれを修正できますか? すべての挿入を実行した後にページをリダイレクトしたいだけですが、この「通知」がそれを防ぎます。