Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP动态表单值的问题_Php_Forms_Loops_Foreach - Fatal编程技术网

PHP动态表单值的问题

PHP动态表单值的问题,php,forms,loops,foreach,Php,Forms,Loops,Foreach,我在表单中有一个用于动态添加/删除项的循环,但是每次只删除最后一项。我可以添加项目只是罚款虽然 我不明白为什么无论我尝试从add\u friends和register\u任务中删除哪些项目,都只删除最后一个项目。当我回显$\u POST['task\u name']时,它始终是列表中的最后一项,而不是我选择的项目(当然,除非我选择了最后一项) 这是表格 <center><h2>Create Event</h2></center>

我在表单中有一个用于动态添加/删除项的循环,但是每次只删除最后一项。我可以添加项目只是罚款虽然

我不明白为什么无论我尝试从add\u friends和register\u任务中删除哪些项目,都只删除最后一个项目。当我回显$\u POST['task\u 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>
创建事件

标题:您需要将表单标记放置在循环中。现在发生的是所有记录都显示在一个表单中,无论您选择什么项目,它只接受最后一个值。另一种替代解决方案是使用GET方法并将数字/名称作为查询字符串传递

如果我使用GET方法,我还会需要表单标签吗?在文本框中输入的任何信息是否必须在某个时间发布,以便在用户希望从列表中删除某个名称时不会丢失?您可以选择使用“获取”或“发布”任意内容。您可以用两种方式处理需求。若您不想在URL中显示信息,那个么使用POST,否则GET就可以了。当您使用GET方法时,根本不需要表单标记
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><?
    }