Php 使用jquery'发送表单数据;ajax';和html表单';行动';
提交表单后,我将尝试执行以下两个操作:Php 使用jquery'发送表单数据;ajax';和html表单';行动';,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,提交表单后,我将尝试执行以下两个操作: 调用表单操作,并将数据发送到数据库 还可以使用jqueryajax将此表单数据发送到另一个php文件 这就像用一个按钮,一个表单执行两个动作 这是我的密码: tryform.php: $(document).ready(function() { $("#parentForm").submit(function(e){ e.preventDefault(); if (!$('.formSubmitButton').hasClass('subm
$(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>
$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());
$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());
谢谢。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>
$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());
$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)插入的,但不是谢谢.php(使用表单操作)。理想情况下,我希望两者都能工作。对$('.parentForm').submit()的第二次调用没有任何作用,因为您阻止了默认操作并返回false。(因为表单有id,而不是类!)
要避免这种情况,请使用表单的submit方法,而不是再次触发submit事件
$('#parentForm')[0].submit();
这将导致表单在不触发任何提交事件处理程序的情况下提交
(您现在可以删除提交的类和if语句)
或者,只需将e.preventDefault
移动到if语句中,并删除returnfalse
1。我尝试使用$('.parentForm')[0].submit()代码>但我得到“无法读取未定义的属性'submit'”,尽管数据仅从“postdata.php”发布。2.我在if语句中移动了e.preventDefault
,并删除了returnfalse
,但它仍然会这样做。(只有postdata.php有效)1。这意味着您的选择器对于表单是错误的,这将解释为什么您的原始代码不起作用<代码>
应该是#
。更新的答案:)