アイテムを動的に追加/削除するためのフォームにループがありますが、毎回最後のアイテムのみが削除されます。アイテムは問題なく追加できます。
add_friends と register_tasks の両方からどのアイテムを削除しようとしても、最後のアイテムのみが削除される理由がわかりません。$_POST['task_name'] をエコーするとき、それは常にリストの最後の項目であり、選択した項目ではありません (もちろん、最後の項目を選択しない限り)。
フォームはこちら
<center><h2>Create Event</h2></center>
<form method="post">
<?
$form = new common_functions();
if($form->check_saved_forms($my_username, "event") == TRUE){
$this->existing_forms(); //allow the user to select existing forms that they have created
}
?>
<tr><td>Title:</td><td><input type="text" width="20%" name="event_title" value="<? echo $form_data[0]; ?>" /></td></tr>
<tr><td>Details:</td><td><input type="text" width="20%" name="event_details" value="<?echo $form_data[1]; ?>" /></td></tr>
<tr><td>Date:</td><td><input type="text" width="20%" name="event_date" id="event_date" value="<? echo $form_data[2]; ?>" /></td></tr>
<tr><td> <input type="submit" name = "submit_event" id = "lOBut" value="Create Event" /></td></tr>
</table>
<?
//this is the section giving me trouble
$form->add_friends($added_friends);
$form->register_tasks($tasks,$nums);
?>
</form>
add_friends と register_tasks はどちらもテキストボックスでフレンド/タスクを動的に追加および削除し、追加されたアイテムのリストが表示されます。ユーザーはアイテムを削除できますが、現在、最後のアイテムのみが削除可能であり、その理由がわかりません。
ここに登録があります (add_friend は同じですが、ラベルが異なります)
function register_tasks($tasks,$nums){
<table>
<td><input type="textbox" size="50" name="register_description"/> </td></tr>
<td><input type ="textBox" name="register_num" /> </td>
<td><input type="submit" name="add_register_tasks" value="Add"/></td></tr>
</table>
<?
if(count($tasks) > 0){
?>
<table>
<tr><td><b>Registration Item Description</b></td><td><b># Of Available Spots</b></td></tr><br>
<?
foreach (array_combine($tasks, $nums) as $task => $task_num){
?>
<tr><td><? echo $task; ?></td><td><? echo $task_num; ?></td>
<td><input type="submit" name="remove_task" value="Remove"/></td>
<td><input type="hidden" name="task_name" value="<? echo $task; ?>"/>
<td><input type="hidden" name="task_num" value="<? echo $task_num; ?>"/></td></tr>
<?
}
?></table><?
}