我希望用桌子嵌套2个单独的表格。我将简要介绍一下目前的情况。
<form action="action1">
<table>
<tr>
<td>...</td>
<td><input type="checkbox" ....></td>
<td>Tag1</td>
</tr>
<tr>
<td>...</td>
<td><input type="checkbox" ....></td>
<td>Tag2</td>
</tr>
.
.
.
</table>
<input type="submit">
</form>
现在,对于每一行,我希望添加一个按钮,该按钮将位于名为action2的不同页面上。动作2需要的是知道对应于哪个标签(例如,Tag1,Tag2,....)被点击的按钮。 我想在每一行中添加以下元素。
<td><form action="action2"><input type="hidden" name="tag_" value="corresponding_tag_in_this_row" /><input type="submit"></form></td>
我正在以编程方式生成表,但是当我添加这个新列时,我注意到不允许在HTML中嵌套FORM元素。什么是解决这个问题的好方法?
action1需要复选框中的所有数据,而action2只需要知道该行的相应标记。 action2和action1可以获取彼此的数据,即,即使action1获取对应于action1和action2的数据,它也被编程为省略action2的数据,反之亦然。
我不想使用任何花哨的JavaScript。对纯HTML的建议将受到高度赞赏,因此没有浏览器兼容性问题。
答案 0 :(得分:0)
您无法为不同的操作制作表单submit
。您必须使用JavaScript并使每个按钮打开不同的页面或制作提交到不同页面的不同表单。例如。如果您想要button1
提交到page1
并button2
提交给page2
,您应该将每个内容放在不同的表单中,并使用不同的action
属性。< / p>
使用纯javascript的示例:
<script type="text/javascript">
function sendForm(action) {
MyForm.action = action;
MyForm.submit();
}
ButtonOne.addEventListener(
'click',
function() { sendForm('action_one.php') },
false);
ButtonTwo.addEventListener(
'click',
function() { sendForm('action_two.php') },
false);
ButtonThree.addEventListener(
'click',
function() { sendForm('action_three.php') },
false);
</script>
稍后在您的代码中:
<form id="MyForm">
<input …/>
…
<button id="ButtonOne" />
<button id="ButtonTwo" />
<button id="ButtonThree" />
</form>
答案 1 :(得分:0)
根据您选择的语言,您可以将其全部放在一个表单中,发布到同一个文件,然后在该文件中根据按下的按钮执行某些操作。
例如在php中,您可以执行以下操作:
<form action="processing.php" method="post">
...
<input type="submit" name="action1" value="Do Action 1" id="action1Button">
<input type="submit" name="action2" value="Do Action 2" id="action2Button">
</form>
然后在processing.php中:
if (!empty($_POST['action1'])) {
// DO ACTION 1 STUFF
// Only look for the inputs etc that relate to action 1
}
// could be an if/else if there are only 2
if (!empty($_POST['action2'])) {
// DO ACTION 2 STUFF
// Only look for the inputs etc that relate to action 2
}
答案 2 :(得分:0)
基于此:
action1需要复选框中的所有数据,而action2只需要知道该行的相应标记。
您不需要action2
的表单。而是使用简单的a
链接并以编程方式构造相应的URL。
例如:
<td><a href="action2?tag={corresponding_tag_in_this_row}">Do Action 2</a></td>
{corresponding_tag_in_this_row}
替换为您正在使用的langauge或模板语言以及该行的相应标记。鉴于你需要这个只是
[打印]与点击的按钮对应的标签
这应该没有任何问题,将减少所需的HTML数量,并允许用户为该特定标记添加书签。
答案 3 :(得分:0)
请按以下步骤操作: 1.使用方法(如post)将结果提交到操作页面 2.然后使用if .... else ...子句指定标题位置并重定向到指定页面,如下所示:
if($_POST['ACTION1'])
{
header('Location: http://www.example.com/');
}
elseif($_POST['ACTION2'])
{
header('Location: http://www.example2.com/');
}