[英]Send form data using jquery 'ajax' and html form 'action'
我正在尝试在提交之后为以下两个操作实现我的表单:
这就像使用单个按钮,单个表单执行两个操作
这是我的代码:
tryform.php:
$(document).ready(function() {
$("#parentForm").submit(function(e){
e.preventDefault();
if (!$('.formSubmitButton').hasClass('submitted'))
{
// disable the form to prevent multple clicks
$('.formSubmitButton').addClass('submitted');
var $form = $(this);
var serializedData = $form.serialize();
request = $.ajax({
type: "POST",
url: "postdata.php",
data: serializedData
});
request.done(function(data){
$('.parentForm').submit();
// enable the form
$('.formSubmitButton').removeClass('submitted');
console.log("Working");
});
request.fail(function(){
console.error("Error occured");
});
}
return false;
});
});
<!--My Form-->
<form id="parentForm" action="thanks.php">
First Name:<input type="text" id="firstName" name="firstName"/>
<br/>Last Name:<input type="text" id="lastName" name="lastName"/>
<br/><input type="submit" id="formSubmitButton" value="submit" />
</form>
postdata.php:
$firstname = $_POST['firstName'];
$lastname = $_POST['lastName'];
$lastname1 = $lastname . " from postdata";
//$test_query = "INSERT INTO testuser (firstname, lastname) VALUES ('" . $firstname . "', '" . $lastname . "')";
$test_query1 = "INSERT INTO testuser (firstname, lastname) VALUES ('" . $firstname . "', '" . $lastname1 . "')";
$result_test1 = mysql_query($test_query1) or die(mysql_error());
thanks.php:
$firstname = $_POST['firstName'];
$lastname = $_POST['lastName'];
$test_query = "INSERT INTO testuser (firstname, lastname) VALUES ('" . $firstname . "', '" . $lastname . "')";
echo $test_query;
$result_test = mysql_query($test_query) or die(mysql_error());
我现在使用相同的insert sql语句。 表单数据是从postdata.php (使用jQuery ajax)插入的,但不是thanks.php (使用表单操作) 。 理想情况下,我希望他们两个都能工作。
第二次调用$('.parentForm').submit()
不执行任何操作,因为您阻止了默认操作并返回false。 (因为表单有一个id,而不是一个类!)
要避免这种情况,请使用表单的提交方法,而不是再次触发提交事件。
$('#parentForm')[0].submit();
这将导致表单提交而不触发任何提交事件处理程序。
(你现在可以摆脱你提交的类和if语句)
或者,只需在if语句中移动e.preventDefault
并删除return false
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.