组合多种形式

Combine Multiple Forms

有没有办法把两种形式合二为一呢?就像在提交表单 2 时具有表单 1 值一样。我尝试使用相同的 name,但没有成功。

<form action='result.php' method='post' name='form' id='form_1'>
    <input name='value_1' placeholder='value_1' />
    <input name='value_2' placeholder='value_1' />
</form>

<form action='result.php' method='post' name='form' id='form_2'>
    <select name='value_3'>
        <option value='a'>a</option>
        <option value='b'>b</option>
    </select>
    <button type='submit'>Submit</button>
</form>

我想在按下提交按钮时得到 value_1、value_2 和 value_3。问题是,我不能在第二种形式上使用 form 属性,因为我的第二种形式是在多个页面上使用的模板,存储在一个单独的变量中。反正周围有没有?

我强烈建议您重新构建模板,以便它们可以相互结合使用。

但是,如果模板是固定的,那么您可以使用 javascript 拦截任一表单的提交,从两个表单中获取数据,然后提交一个新表单。

你可以这样做

<form action='result.php?action=form1' method='post' name='form' id='form_1'>
    <input name='value_1' placeholder='value_1' />
    <input name='value_2' placeholder='value_1' />
</form>

<form action='result.php?action=form2' method='post' name='form' id='form_2'>
    <select name='value_3'>
        <option value='a'>a</option>
        <option value='b'>b</option>
    </select>
    <button type='submit'>Submit</button>
</form>

在您的 PHP 文件上:

<?php
$action = $_GET['action'];

if($action === 'form1'){
    #do something
}else{
    #do something
}

找到解决方法。我用 form='parent' 代替 form_2,并把 id='parent' 放在 form_1 中。缺点是现在我必须命名每个表格 id='parent'...

没试过,我在想如果我把两个表格都用form='parent',然后做一个隐藏的<form id='parent>',我也许可以组合更多的表格。不完美...但至少可以正常工作 HTML.