容器表单更新嵌套更深的表单

时间:2010-12-08 11:27:31

标签: php html

好吧,我有一个像这样的HTML页面:

<form method="post" action="" enctype="multipart/form-data">
<!-- Some more markup -->
<form method="post" action="" enctype="multipart/form-data">
<input type="submit"name="reset_ph" value="<?php _e('Reset styles'); ?>" />
<input type="hidden" name="subaction" value="reset_ph" />
</form>
<p><input name="update" type="submit" value="<?php _e('Save changes'); ?>" style="padding:3px;"  /></p>
<input type="hidden" name="action" value="update"  />
</form>  

然后PHP代码:

//updating main form
if(isset($_FILES['phtfile']['name']) && $_REQUEST['action']=='update'){
$def_path = TEMPLATEPATH.'/img/author/';
$file_path = $def_path.basename($_FILES['phtfile']['name']);
$file_path = str_replace('\\','/',$file_path);
$file_css_path = get_bloginfo('template_url');
$file_css_path = $file_css_path.'/img/author/'.basename($_FILES['phtfile']['name']);

$isfile = move_uploaded_file($_FILES['phtfile']['tmp_name'],$file_path);

if ($isfile) { update_option('own_pht_url', $file_css_path);}

}
//update subform    
if ($_POST['subaction']=='reset_ph'){
global $photo_path;
update_option('own_pht_url', $photo_path.'tmp.jpg');
}

子窗体包含一个按钮,用于将显示的图像重置为默认值(通过将图像路径设置为默认值)。主窗体包含图像上载对话框,如果要上载文件,则应将图像路径更改为新图像。但是更新主窗体,更新子窗体,路径设置为默认值。

我已经想出了一个解决方法,通过将按钮更改为复选框,但我仍然感兴趣,更新主表单是否总是更新其中的每个子表单?没办法吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

已知嵌套表单会导致问题。你可以查看这个主题:

Why WHATWG disallows nested forms in HTML 4 and HTML5?