Php 高级jQuery表单验证-如何更改GET to POST?

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

我对jQuery和JavaScript相当陌生,我一直在尝试实现一个jQuery联系人表单,它调用一个PHP文件来发送实际的电子邮件

以下是jQuery部分,它在jQuery验证通过后调用PHP文件:

$(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'),