Ajax 在 JQuery 表单插件中不工作
Ajax not working in JQuery form plugin
我正在使用 ajax 实现 Jquery 表单插件,以便在数据库中插入我的表单。验证工作正常,但 ajax 调用未收到任何响应数据。
也许,我不知道确切的方法。
通过指导使用此插件的真正方法来帮助我。
谢谢
JS_File
$(document).ready(function() {
$('#signup_form').formValidation({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
// Here i have defined some rules
}
})
.on('success.form.bv', function(e) {
var firstName = $('.name').val();
var email = $('.email').val();
var password = $('.password').val();
e.preventDefault();
var $form = $(e.target);
$form.ajaxSubmit({
// You can change the url option to desired target
url: $form.attr('form_process.php'),
type: 'POST',
data:{'FirstName':firstName,'Email':email,'Password':password},
success: function(responseText) {
alert(responseText);
}
});
});
});
form_process.php
<?php
if(isset($_POST['FirstName']) && isset($_POST['Email']) && isset($_POST['Password'])
&& isset($_POST['City']) && isset($_POST['Country']))
{
echo $firstName = $_POST['FirstName'];
echo $em = $_POST['Email'];
echo $ftName = $_POST['Password'];
echo $ame = $_POST['City'];
echo $firame = $_POST['Country'];
}
您没有从 ajax 传递城市和国家/地区,但您仍然试图获取这些字段的值,甚至您还在 php 中设置条件,如果 FirstName、Email、Password , City, Country 都设置好了然后只有条件进去。
所以有 2 个解决方案可用:
1) 从 id 条件中删除城市和国家并尝试获取它
if(isset($_POST['FirstName']) && isset($_POST['Email']) && isset($_POST['Password']))
{
echo $firstName = $_POST['FirstName'];
echo $em = $_POST['Email'];
echo $ftName = $_POST['Password'];
}
2) 从 ajax 请求
传递城市和国家
$(document).ready(function() {
$('#signup_form').formValidation({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
// Here i have defined some rules
}
})
.on('success.form.bv', function(e) {
var firstName = $('.name').val();
var email = $('.email').val();
var password = $('.password').val();
var city = $(".city").val();
var state = $(".state").val();
e.preventDefault();
var $form = $(e.target);
$form.ajaxSubmit({
// You can change the url option to desired target
url: $form.attr('form_process.php'),
type: 'POST',
data:{'FirstName':firstName,'Email':email,'Password':password,'City':city,'State':state},
success: function(responseText) {
alert(responseText);
}
});
});
});
我认为错误出在您设置 url
:
的地方
url: $form.attr('form_process.php'),
您是说表单具有包含 url 的属性 form_process.php
。你可能是这个意思:
url: $form.attr('action'),
其他修复:
- 订阅表单提交事件并阻止默认操作:
$('#signup_form').submit(function(e){
e.preventDefault();
});
尝试设置 ajax在提交发生之前提交 - 意味着从事件中向上移动代码 success.form.bv
:
$('#signup_form').ajaxSubmit({
// You can change the url option to desired target
url: $form.attr('form_process.php'),
type: 'POST',
data:{'FirstName':firstName,'Email':email,'Password':password},
success: function(responseText) {
alert(responseText);
}
});
- 您可能以错误的方式使用插件使表单首先在没有 ajax 的情况下工作,然后使用来自插件站点的后续示例 http://malsup.com/jquery/form/#ajaxForm 执行 AJAX。
我正在使用 ajax 实现 Jquery 表单插件,以便在数据库中插入我的表单。验证工作正常,但 ajax 调用未收到任何响应数据。 也许,我不知道确切的方法。 通过指导使用此插件的真正方法来帮助我。 谢谢
JS_File
$(document).ready(function() {
$('#signup_form').formValidation({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
// Here i have defined some rules
}
})
.on('success.form.bv', function(e) {
var firstName = $('.name').val();
var email = $('.email').val();
var password = $('.password').val();
e.preventDefault();
var $form = $(e.target);
$form.ajaxSubmit({
// You can change the url option to desired target
url: $form.attr('form_process.php'),
type: 'POST',
data:{'FirstName':firstName,'Email':email,'Password':password},
success: function(responseText) {
alert(responseText);
}
});
});
});
form_process.php
<?php
if(isset($_POST['FirstName']) && isset($_POST['Email']) && isset($_POST['Password'])
&& isset($_POST['City']) && isset($_POST['Country']))
{
echo $firstName = $_POST['FirstName'];
echo $em = $_POST['Email'];
echo $ftName = $_POST['Password'];
echo $ame = $_POST['City'];
echo $firame = $_POST['Country'];
}
您没有从 ajax 传递城市和国家/地区,但您仍然试图获取这些字段的值,甚至您还在 php 中设置条件,如果 FirstName、Email、Password , City, Country 都设置好了然后只有条件进去。
所以有 2 个解决方案可用:
1) 从 id 条件中删除城市和国家并尝试获取它
if(isset($_POST['FirstName']) && isset($_POST['Email']) && isset($_POST['Password']))
{
echo $firstName = $_POST['FirstName'];
echo $em = $_POST['Email'];
echo $ftName = $_POST['Password'];
}
2) 从 ajax 请求
传递城市和国家$(document).ready(function() {
$('#signup_form').formValidation({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
// Here i have defined some rules
}
})
.on('success.form.bv', function(e) {
var firstName = $('.name').val();
var email = $('.email').val();
var password = $('.password').val();
var city = $(".city").val();
var state = $(".state").val();
e.preventDefault();
var $form = $(e.target);
$form.ajaxSubmit({
// You can change the url option to desired target
url: $form.attr('form_process.php'),
type: 'POST',
data:{'FirstName':firstName,'Email':email,'Password':password,'City':city,'State':state},
success: function(responseText) {
alert(responseText);
}
});
});
});
我认为错误出在您设置 url
:
url: $form.attr('form_process.php'),
您是说表单具有包含 url 的属性 form_process.php
。你可能是这个意思:
url: $form.attr('action'),
其他修复:
- 订阅表单提交事件并阻止默认操作:
$('#signup_form').submit(function(e){ e.preventDefault(); });
尝试设置 ajax在提交发生之前提交 - 意味着从事件中向上移动代码
success.form.bv
:$('#signup_form').ajaxSubmit({ // You can change the url option to desired target url: $form.attr('form_process.php'), type: 'POST', data:{'FirstName':firstName,'Email':email,'Password':password}, success: function(responseText) { alert(responseText); } });
- 您可能以错误的方式使用插件使表单首先在没有 ajax 的情况下工作,然后使用来自插件站点的后续示例 http://malsup.com/jquery/form/#ajaxForm 执行 AJAX。