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

时间:2014-12-20 04:43:36

标签: php jquery html forms

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

<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,那将会有效。我在其他页面上需要它们,所以我认为Sessions在这里是最好的(如果没有,欢迎其他建议)。

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

3 个答案:

答案 0 :(得分:0)

好的,首先你应该删除输入上的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();
}

答案 1 :(得分:0)

关于将表单数据存储在会话变量中的问题请尝试以下几点:

session_start();

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

希望有所帮助

答案 2 :(得分:0)

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

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'];