Php 高级jQuery表单验证-如何更改GET to POST?
我对jQuery和JavaScript相当陌生,我一直在尝试实现一个jQuery联系人表单,它调用一个PHP文件来发送实际的电子邮件 以下是jQuery部分,它在jQuery验证通过后调用PHP文件:Php 高级jQuery表单验证-如何更改GET to POST?,php,jquery,forms,post,get,Php,Jquery,Forms,Post,Get,我对jQuery和JavaScript相当陌生,我一直在尝试实现一个jQuery联系人表单,它调用一个PHP文件来发送实际的电子邮件 以下是jQuery部分,它在jQuery验证通过后调用PHP文件: $(this).click(function() { var result = $.formValidator(options); if (result && jQuery.isFunction(options.onSuccess)) { op
$(this).click(function() {
var result = $.formValidator(options);
if (result && jQuery.isFunction(options.onSuccess)) {
options.onSuccess();
// Start Processor
if($(this).data('formstatus') !== 'submitting'){
// Setup variables
// Form Variables
var name = $(".form input#getstarted-name").val();
var number = $(".form input#getstarted-phone1").val() + ' ' + $(".form input#getstarted-phone2").val();
var company = $(".form input#getstarted-company").val();
var email = $(".form input#getstarted-email").val();
var message = $(".form textarea#getstarted-message").val();
var from_url = $(".form input#getstarted-from_url").val();
// Consolidate Variables
var dataString = 'name=' + name + '&number=' + number + '&company=' + company + '&email=' + email +
'&message=' + message + '&from_url=' + from_url;
var form = $(this),
//formData = email.serialize(),
formData = dataString,
formUrl = form.attr('action'),
formMethod = form.attr('method'),
responseMsg = $('#startproject-response');
//add status data to form
form.data('formstatus','submitting');
//show response message - waiting
responseMsg.hide()
.removeClass('response-error')
.removeClass('response-success')
.addClass('response-waiting')
.text('Please Wait...')
.fadeIn(200);
$.ajax({
url: "/layout/js/jquery/forms/form_db_process.php",
type: formMethod,
data: formData,
success:function(data){
//setup variables
var responseData = jQuery.parseJSON(data),
klass = '';
//response conditional
switch(responseData.status){
case 'error':
klass = 'response-error';
break;
case 'success':
klass = 'response-success';
break;
}
//show reponse message
responseMsg.fadeOut(200,function(){
$(this).removeClass('response-waiting')
.removeClass('response-error')
.addClass(klass)
.text(responseData.message)
.fadeIn(200,function(){
//set timeout to hide response message
setTimeout(function(){
responseMsg.fadeOut(200,function(){
$(this).removeClass(klass);
form.data('formstatus','idle');
});
},3000)
});
});
}
});
}
//prevent form from submitting
return false;
// End Processor
}
});
下面是PHP文件“form_db_process.PHP”:
我有这整件事要做,但我想知道如何改成“到达”帖子?我知道如何使用常规的HTML+PHP来实现这一点,但jQuery让我不知所措
我看这里:
但无法想出任何可行的方法/不确定如何使用它。
任何帮助都将不胜感激
//编辑:我在下面添加了HTML部分(用于表单):
在jQuery中:
$.ajax({
type: 'POST',
您的代码执行以下操作:
$.ajax({
url: "/layout/js/jquery/forms/form_db_process.php",
type: formMethod,
而formMethod设置较早:
var form = $(this),
//formData = email.serialize(),
formData = dataString,
formUrl = form.attr('action'),
formMethod = form.attr('method'),
要么重写它,要么将表单的
方法
属性实际更改为POST。$。ajax
可以执行GET和POST。这是您传递的formtype,它是从表单的方法
属性中检索的,因此您可以更改它
您还可以在屏幕后面使用
$.get
或$.post
速记来调用$.ajax
。首先确保formMethod是“post”,我将以json格式而不是查询字符串传递数据。在这种情况下,您需要相应地指定数据类型和内容类型。它说“//Consolidates Variables var dataString='name='+name+'&number='+number+'&company='+company+'&email='+email+'&message='+message+'&from_url='+from_url;”的部分如何,或者将其作为$的数据参数传递。ajax
.Konerak:我认为formMethod只是在HTML表单中查找'method=“post”'属性,对吗?HTML表单已经更改为POST(添加了上面的代码)。将HTML表单方法更改为POST后,我将PHP文件中的所有GET更改为POST,所有变量返回空。jQuery或PHP部分中的变量丢失了吗?如果我现在的jQuery是ok的,我应该在PHP中更改什么(或者如果这是PHP的问题,我应该在jQuery中更改什么)?没关系,明白了!我想文件只是缓存了一下或者什么的。。。作品完美:)。只是将所有PHP部分更改为POST,并将formMethod更改为jQuery中的POST。谢谢我猜您的表单(var form=$(this))有一个GET方法?你试过把它改成POST吗?我把HTML部分改成了“POST”,如果你是这个意思的话?
$.ajax({
url: "/layout/js/jquery/forms/form_db_process.php",
type: formMethod,
var form = $(this),
//formData = email.serialize(),
formData = dataString,
formUrl = form.attr('action'),
formMethod = form.attr('method'),