多个表单,使用一个提交按钮检查所有表单的输入


Multiple Forms, check input from all with one submit button

我在一页上有多个这样的表单:

<form method="post" action="#">
    <input type="hidden" name="product_id" value="'.$item['articlenumber'].'" />
    <input type="text" name="update_quantity" value="'.$pg->quantity.'" />
    <input type="hidden" name="packing" value="'.$item['packing'].'" />
    <input type="hidden" name="unit" value="'.$item['unit'].'" />
    <input type="submit" name="addtocart" value="Update" />
</form>

我在底部有一个提交按钮:

<input name='placeorder' type='submit' value='Place order' />

当我按下提交按钮时,如何检查所有表格?我需要验证给出的输入是否正确。

更新

我现在从 JavaScript 中的表单中获取了所有值,并且验证是正确的。现在我想将变量存储到 PHP SESSIONS 中。我看到了 Ben 的答案,如果 PHP 中的值现在在 JavaScript 中,那将起作用。我在其他页面上需要它们,所以我认为会话将是这里最好的事情(如果没有,欢迎其他建议(。

我看到了这个答案,他们说这不可能在一页上。我理解这一点,因为PHP是服务器端和Javascript客户端。这是将Javascript变量发送到PHP的唯一可能方法吗?

好的,首先你应该删除输入上的type='submit'。所以把它改成:

<input name='placeorder' value='Place order' />

然后你只需要添加一个javascript函数来验证。

$(document).ready(function() {
  $("input [name='placeorder']").click(function() {
    var formOK = true;
    $("form input").each(function(index, element) {
      var value = $(element).val();
      if (value != "OK") {
        formOK = false;
      }
    });
    if (formOK) {
      submitForms();
    } else {
      alert("Form Input Inccorect");
    }
  });
});
function submitForms() {
  $("#form1").add("#form2").submit();
}

关于您在会话变量中存储表单数据的问题 尝试以下操作:

session_start();
if (isset($_POST['placeorder'])) { 
$_session['ProductID'] = $_POST['product_id'];
$_session['UpdateQuantity'] = $_POST['update_quantity'];
$_session['Packing'] = $_POST['packing'];
$_session['Unit'] = $_POST['unit'];
} 

希望有帮助

这两个答案都对我有所帮助,但我需要将它们结合起来,所以我最终得到了如下所示的解决方案。我通过输入的唯一名称从输入中获取值,如下所示:

var sizeS25 = parseInt($("input[name='size-s25']").val(), 10) || 0;
var sizeM25 = parseInt($("input[name='size-m25']").val(), 10) || 0;

然后我将变量发送到 PHP 文件:

window.location.href = "phpsessions.php?sizeS25=" + sizeS25 + "&sizeM25=" + sizeM25;

在PHP文件中,我将变量设置为会话:

$_SESSION['sizeS25'] = $_GET['sizeS25'];
$_SESSION['sizeM25'] = $_GET['sizeM25'];