我被困住了。
我有一个提交给自己的常规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等的资源,但没有涉及这个问题。
答案 0 :(得分:1)
您可以使用.serialize
从表单中获取数据,然后使用$.param
data:$.param({partsToAdd: jArray})+'&'+$('#PO').serialize(),
答案 1 :(得分:-1)
您可以序列化表单。
在您的ajax数据中,只需执行
data: $('form').serialize()