对不起,我找不到这个问题的正确标题.我使用for循环生成了以下内容,并使用以下模式连接了提交按钮的名称:submit_edit_category_1 submit_edit_category_2 submit_edit_category_3
echo "<input type='submit' value = 'Edit' name='submit_edit_category_" .
$obj_categories_admin->categories[$i]['category_id'] . "'/>";
Run Code Online (Sandbox Code Playgroud)
我想循环遍历这些值,以便我可以按钮动作whichis edit_category和类别ID 1,2或3.我想这样的事情:
if(isset($_POST) == 'edit_category'))
{
//code here
}
Run Code Online (Sandbox Code Playgroud)
有人建议我这样做:
name="submit[which_action][which_category]"
a1 = $_POST['submit'];
$which_action = reset(array_keys($a1));
$which_category = reset(array_keys($a1[$which_action]));
Run Code Online (Sandbox Code Playgroud)
这似乎没有用.任何人都可以给我一个不同的方式来做到这一点?谢谢!
Ade*_*elf 25
UPD:请使用Mike的建议.在POST中拥有更多结构化数据要好得多.
foreach($_POST as $key => $val) {
if(strpos($key, 'submit_edit_category_') === 0 ) {
print $key.' => '.$val.'\r\n';
print substr($key, 21 /* or 22... or 23... try yourself */ );
}
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*rov 17
我在做什么
对于实际的表单,我使用数组键来传达动作和相关的id信息.
$cat_id = $obj_categories_admin->categories[$i]['category_id'];
echo "<input type='submit' value = 'Edit' name='submit[edit_category][" . $cat_id . "]'/>";
Run Code Online (Sandbox Code Playgroud)
发布时,我可以这样做:
<?php
list($action, $action_params) = each($_POST['submit']);
list($cat_id, $button_label) = each($action_params);
print_r($_POST['submit']); // prints array('edit_category' => array('1' => 'Edit'))
echo($action); //prints "edit_category"
print_r($action_params); //prints array('1' => 'Edit')
echo($cat_id); //prints "1"
echo($button_label); //prints "Edit"
Run Code Online (Sandbox Code Playgroud)
编辑:有关每个()的更多信息,请访问:http://us2.php.net/each.我个人总觉得按钮标签与它的价值之间缺乏差异令人沮丧.使用数组键将信息填充到按钮一直是我最喜欢的黑客.
| 归档时间: |
|
| 查看次数: |
13780 次 |
| 最近记录: |