发送ajax数据序列化到php

时间:2015-05-07 21:23:28

标签: php ajax post

有联系表单和提交按钮。 (稍后我将尝试弄清楚如何将该联系表格数据发送到邮件)

现在,我需要将数据转换为php脚本.... 如何将ajax json数据转发到php脚本? 现在我只想通过echo显示通过ajax发送的联系表单数据......

以下是按下提交按钮时触发的完整javascript函数:

function modalForm(){
        $('.enquiryForm form').submit(function(e){
            e.preventDefault();
            change_tock();
            console.log("evo ga");
            $('.enquiryForm .status').html('');
            $('#singlePageBox .modal-footer').html('');
            var eForm = $(this),
                formData = {
                    action: eForm.attr('action'),
                    method: eForm.attr('method')
                },
            mandatoryFieldNames = 'c_phone,c_email'
            ;

            mandatoryFieldNames = $.map(mandatoryFieldNames.split(','), $.trim);
            var formFields = eForm.find('input[required], textarea[required]');
            var emptyFields = 0;
            formFields.each(function(i,v) {
                var item = $(this)
                ;
                if( !item.val() ) {
                    if( $.inArray(item.attr('name').trim() , mandatoryFieldNames) != -1 ) { 
                        item.addClass('empty_field');
                        emptyFields++;
                    }
                } else{
                    item.removeClass('empty_field');
                }
            });
            if( emptyFields !== 0) return false;
            globalDebug !== 0 && console.log(formData, eForm);
            $.ajax({
                type: 'post',//formData.method//,
                dataType:'json',
                url: 'slanje_poruke.php',//formData.action,
                cache: false,
                timeout: 50000,
                data: eForm.serialize()+'&sent_from='+window.location.hostname
            })
            .success(function (jqXHR, textStatus){
                $('.enquiryForm form').hide();
                $('.enquiryForm .status').append('<div class="alert alert-success">'+jqXHR.responseText+'</div>');
                $('#singlePageBox .modal-footer').html('<div class="alert alert-success">'+jqXHR.responseText+'</div>');
                globalDebug !== 0 && console.log(jqXHR, textStatus);
            }).done(function (result) {
                globalDebug !== 0 && console.log(result);
            })
            .fail(function (jqXHR, textStatus) {
                $('.enquiryForm .status').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>');
                $('#singlePageBox .modal-footer').html('<div class="alert alert-error">Error: '+jqXHR.responseText+'</div>');
                globalDebug !== 0 && console.log(jqXHR, textStatus);
            })
            ;
            return false;
        });
        return false;
    }

这是简单的php slanje_poruke.php文件内容:

    <?php
    $ref = $_POST['c_ref'];
    $url = $_POST['c_url'];
    $remotepagenum = $_POST['remotePageNumber'];
    $name = $_POST['c_name'];
    $email = $_POST['c_email'];
    $phone = $_POST['c_phone'];
    $message = $_POST['c_message'];
    $sent_from = $_POST['sent_from'];



 echo "<script type='text/javascript'>console.log(' ".$email."  ');</script>";

?>

现在,当我按下提交按钮时,没有任何反应,只有控制台日志消息出现(&#39; evo ga&#39;)我在此功能启动时设置为测试...但没有显示任何内容php文件......

如何让php脚本获取从ajax发送的数据?谢谢!

1 个答案:

答案 0 :(得分:0)

要获取表单内容,请使用jQuery serialize()方法对其进行序列化。这会将表单内容转换为查询字符串,您只需提交数据,$ _POST将包含所有表单数据。