在表单提交时从HTML表单和Javascript数组中获取数据

时间:2016-06-20 23:51:22

标签: javascript php jquery html forms

我被困住了。

我有一个提交给自己的常规HTML表单。

<form action="<?php print $phpSelf;?>" method="post" id="PO">
  <input>...</>
  <input>...</>
  <input>...</>
  <input type="submit" id="btnCreate" name="btnCreate" value="Create" tabindex="900" class="button">
</form>

我在Javascript中有一个数组,我会称之为

var jArray;

我需要从表单中获取信息,以及来自Javascript数组的信息。我可以分别得到它们,但我不知道如何同时获得它们。

对于Javascript,这是我正在使用的方法。

function submitPO(){
  $.ajax({
     type:"post",
     url: "jsTo.php", //Send the variable to this page
     data:{partsToAdd: jArray}, //{variable name (POST), data to be passed}
     cache:false,
     success: function(html){ //Function to execute when successful
        console.log("Success in the function");
        $('p#msg').html(html);
     }
  });
return false
}; //End of SubmitPO

<p id = "msg"></p>
<form>
    <input type="submit" value = "submit" onclick = "return submitPO();">
</form>

当我按下按钮时,它会将数组发送到 jsTo.php ,在那里我可以得到它。

$selectedParts = $_POST['partsToAdd'];

工作正常。我使用类似的方法从HTML表单中获取信息。

$To = htmlentities($_POST["To"], ENT_QUOTES, "UTF-8");

所以,就像我上面提到的,我可以从javascript数组中获取数据,也可以从表单中获取数据,但不能同时获取两者。任何人都能帮我解决这个问题吗?我已经看了很多,并且已经找到了大量关于如何使用一个按钮提交多个表单,如何从JS发布到PHP等的资源,但没有涉及这个问题。

2 个答案:

答案 0 :(得分:1)

您可以使用.serialize从表单中获取数据,然后使用$.param

将其添加到数组数据中
 data:$.param({partsToAdd: jArray})+'&'+$('#PO').serialize(), 

答案 1 :(得分:-1)

您可以序列化表单。

在您的ajax数据中,只需执行

data: $('form').serialize()