循环遍历$ _POST

时间:2010-02-11 15:53:34

标签: php mysql

我有一个for循环,它实际上显示了一个产品名称和几个按钮,如:编辑,更新,取消 对于我正在显示的每个产品,它将有自己的一组Edir,更新和取消按钮,如下所示。

绘制编辑更新取消

我想循环浏览按钮,以便对于每个类别,我可以执行不同的操作。我正在考虑使用像btn_edit1,btn_edit2这样的按钮名称并使用for循环。 1,2是类别ID。 也许我不够清楚。对不起。谁能给我一些建议?

for($i = 0; $i<count($obj_categories_admin->categories);$i++)
{   

            echo "<tr>";

            echo "<td width='1500'>";
            echo "<input type='text' name='name'  size = '30' value='" . $obj_categories_admin->categories[$i]['name'] . "'/>";

            echo "</td>";

            echo "<td width='500'>";

            echo "<input type='submit' value = 'Update details' name='submit_update_category_" . 
            $obj_categories_admin->categories[$i]['category_id'] . "'/>";

            echo "</td>";



            echo "<td width='500'>";

            echo "<input type='submit' value = 'Edit Sub Categories' name='submit_edit_sub_" . 
            $obj_categories_admin->categories[$i]['category_id'] . "'/>";

            echo "</td>";

            echo "<td width='500'>";
            echo "<input type='submit' value = 'Delete' name='submit_delete_category_" . 
            $obj_categories_admin->categories[$i]['category_id'] . "'/>";
            echo "</td>";

            echo "<td width='500'>";

            echo "<input type='submit' value = 'Cancel' name='cancel'" . "'/>" ;

            echo "</td>";

            echo "</tr>";   
    }

我想做点什么

foreach($_POST as $key => $value)
{

}

这样当我点击按钮时,它会根据category_id执行操作。

我按照建议尝试了这个:

echo "<input type='submit' name='submit[add_category]'" . 
"[" . $obj_categories_admin->categories[$i]['category_id'] . "]". " value='Add' />";

现在在我的班上,我有:

$a1 = $_POST['submit']; 
    $which_action = reset(array_keys($a1)); 
    $which_category = reset(array_keys($a1[$which_action])); 

但是,我收到错误:未定义的索引提交

2 个答案:

答案 0 :(得分:1)

我会用这样的东西:

<fieldset>
<!-- product info -->
<input name="productName[paint]" />
<input name="productName[edit]" />
<input name="productName[delete]" />
<input name="productName[cancel]" />
</fieldset>

当你把它带到服务器端时,嵌套数组中的一切都会很好和整洁。

答案 1 :(得分:1)

我会使用以下模式给出提交按钮的名称属性:

name="submit[which_action][which_category]"

例如,类别123的“更新”按钮:

name="submit[update][123]"

当用户点击任何提交按钮时,要确定用户点击了哪个特定按钮,您只需要在PHP代码中检查$ _POST ['submit']:

$a1 = $_POST['submit'];
$which_action = reset(array_keys($a1));
$which_category = reset(array_keys($a1[$which_action]));