Javascript jQuery';s POST触发器“;“完成”;但没有提交任何数据
我想用AJAX提交我的表单。我编写了一个通过按下按钮触发此功能:Javascript jQuery';s POST触发器“;“完成”;但没有提交任何数据,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我想用AJAX提交我的表单。我编写了一个通过按下按钮触发此功能: function putUser() { $('button#putUser').on('click', function() { var user = $('input#user').val(), amount = $('input#amount').val(), what = $('input#amount').val(), cou
function putUser() {
$('button#putUser').on('click', function() {
var user = $('input#user').val(),
amount = $('input#amount').val(),
what = $('input#amount').val(),
country = $('input#country').val(),
platform = $('input#platform').val(),
formUrl = $('form#sendUser').attr('action');
var data = {
user: user,
amount: amount,
what: what,
country: country,
platform: platform
}
$.post(formUrl, $('#sendUser').serialize(), function() {
alert('test');
}).done(function() { alert('done')})
return false;
})
}
这在理论上是可行的,因为我正在得到警报。但没有提交任何数据。发生了什么?我的SQL语句工作得很好
我的php代码:
if(isset($_POST['putUser'])) {
$user = $_POST['user'];
$amount = $_POST['amount'];
$what = $_POST['what'];
$country = $_POST['country'];
$platform = $_POST['platform'];
$query = mysql_query('INSERT INTO sells (id, user, amount, what, country, platform) '
. 'VALUES (NULL , "' . mysql_real_escape_string($user) . '", "' . mysql_real_escape_string($amount) . '", "' . mysql_real_escape_string($what) . '", "' . mysql_real_escape_string($contry) . '", "' . mysql_real_escape_string($platform) . '")');
if($query) {
echo 'ok';
} else {
die(mysql_error());
}
}
看起来你实际上并没有发送你想要提交的数据
请注意,$('#sendUser').serialize()
已更改为您的数据
对象。而且putUser
已添加到数据中,以便服务器端代码能够识别它
我想你想要这个:
function putUser() {
$('button#putUser').on('click', function() {
var user = $('input#user').val(),
amount = $('input#amount').val(),
what = $('input#amount').val(),
country = $('input#country').val(),
platform = $('input#platform').val(),
formUrl = $('form#sendUser').attr('action');
var data = {
putUser: true,
user: user,
amount: amount,
what: what,
country: country,
platform: platform
}
$.post(formUrl, data, function() {
alert('test');
}).done(function() { alert('done')})
return false;
})
}
看起来你实际上并没有发送你想要提交的数据
请注意,$('#sendUser').serialize()
已更改为您的数据
对象。而且putUser
已添加到数据中,以便服务器端代码能够识别它
我想你想要这个:
function putUser() {
$('button#putUser').on('click', function() {
var user = $('input#user').val(),
amount = $('input#amount').val(),
what = $('input#amount').val(),
country = $('input#country').val(),
platform = $('input#platform').val(),
formUrl = $('form#sendUser').attr('action');
var data = {
putUser: true,
user: user,
amount: amount,
what: what,
country: country,
platform: platform
}
$.post(formUrl, data, function() {
alert('test');
}).done(function() { alert('done')})
return false;
})
}
什么是$('#sendUser')。serialize()
?那是你为自己制作的表格吗
编辑:
对于post-什么是$(“#sendUser”)。请尝试使用数据类型“json”。serialize()
?那是你为自己制作的表格吗
编辑:
对于post-尝试使用数据类型“json”,我会将putUser参数更改为get参数
<form action="sendUser.php?putUser">
js
还更改为提交事件而不是单击,这使我可以进一步使用此
而不是选择器。我将putUser参数更改为get参数
<form action="sendUser.php?putUser">
js
还更改为提交事件而不是单击,这使我可以进一步使用此
而不是选择器。它不起作用。我以前试过使用$.post(formUrl,data…
),但不起作用。我以前尝试过使用$.post(formUrl,data…
)。表单的序列化内容。您可能希望使用构建的数据对象来发布它。我尝试过了。我仍然不明白为什么要创建数据对象,以后再也不用它了。您可能需要添加“json”作为post请求的最后一个参数:$.post(formUrl,$(“#sendUser”).serialize(),function(){alert('test');},'json');另一方面,我建议使用“ajaxError”来跟踪并查看表单的ajax请求序列化内容是否有任何问题。您可能希望使用您构建的数据对象来发布它。我做到了。我仍然不明白为什么要创建数据对象,以后再也不用它了。您可能需要添加“json”作为post请求的最后一个参数:$.post(formUrl,$(“#sendUser”).serialize(),function(){alert('test');},'json');另一方面,我建议使用“ajaxError”来跟踪并查看ajax请求是否存在任何问题-您如何确认“没有提交数据”?我们可以查看您的服务器端代码吗?我的sql表中没有新的内容。这并不意味着没有提交任何数据。据我们所知,您的sql查询可能会失败,或者您可能会错误地访问post数据。您的javascript是正确的。当JS关闭时,数据将使用常规PHP和页面刷新提交。现在开始。当您使用数据
发送时,您没有发送putUser post var,我猜jQeury没有序列化您的按钮值。您如何确认“没有提交数据”?我们可以查看您的服务器端代码吗?我的sql表中没有新的内容。这并不意味着没有提交任何数据。据我们所知,您的sql查询可能会失败,或者您可能会错误地访问post数据。您的javascript是正确的。当JS关闭时,数据将使用常规PHP和页面刷新提交。现在开始。当您使用数据
发送时,您没有发送putUser post var,我猜jQeury没有序列化您的按钮值。