dsft8327 2016-03-02 12:33
浏览 43

发布到Laravel 5.2时,javascript枚举为空。*

Hopefully this is an easy one, and as mentioned in the title the javascript enum that I'm setting is empty on the server. Here is a watered down code snipped so you can experiment:

routes.php

Route::post('generalenquiries/send', 'CommsController@send');

layout.blade.php

<head>
    <meta name="csrf-token" content="{{ csrf_token() }}" />
    ...
</head>

javascript code

$(document).ready(function() {
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    var EmailTypeEnum = {
        GENERAL_ENQUIRY: 0
        ,SELF_CATERING: 1
        ,REPORT_BUG: 2
        ,NEWSLETTER: 3
        ,properties: {
            0: {name: "GENERAL_ENQUIRY", value: 0, code: "GE"},
            1: {name: "SELF_CATERING", value: 1, code: "SC"},
            2: {name: "REPORT_BUG", value: 2, code: "RB"},
            3: {name: "NEWSLETTER", value: 3, code: "N"}
          }
    };

    $( "#general_enquiries_form" ).submit(function() {
        var form        = $( this ),
            action      = form.attr("action"),
            isValid     = form.valid(),
            valSum      = $(".validation-summary");

        var emailType = EmailTypeEnum.GENERAL_ENQUIRY;
        var emailTypeName = EmailTypeEnum.properties[emailType].name;   // emailTypeName == "GENERAL_ENQUIRY"

        if ( isValid ) {
            valSum.removeClass( "error" );
            valSum.addClass( "success" );
            valSum.html( "Sending message..." );

            var data = {
                message_type: emailTypeName
                ,first_name: first_name.val()
                ,last_name: last_name.val()
            };

            $.ajax({
                type: "POST",
                // our data object
                url: action,        // the url where we want to POST
                data: data
            })
            // using the done promise callback
            .done(function(data) {
                // log data to the console so we can see
                console.log(data);

                // here we will handle errors and validation messages
                if ( data.success != true ) {
                    valSum.removeClass( "success" );
                    valSum.addClass( "error" );
                    valSum.html( data.message );
                } else {
                    valSum.removeClass( "error" );
                    valSum.addClass( "success" );
                    valSum.html( data.message );
                }
            })
            // using the fail promise callback
            .fail(function(data) {
                // show any errors
                // best to remove for production
                console.log(data);

                valSum.removeClass( "success" );
                valSum.addClass( "validation-summary error" );
                valSum.html( "Server Error: " + data.statusText + " processing your request." );
            });
        }
    });
});

CommsController.php

class CommsController extends Controller {
    public function send(Request $request) {
        try {
            // $request->input('message_type') returns empty but $request->input('first_name') displays the correct value.
            echo ($request->input('message_type') ." ". $request->input('first_name'));
            die();
        }
        catch(Exception $e) {
            $response = array (
                'success' => false,
                'message' => $e->getMessage(),
                $request
            );
        }
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
    • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
    • ¥60 pb数据库修改与连接
    • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
    • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
    • ¥20 神经网络Sequential name=sequential, built=False
    • ¥16 Qphython 用xlrd读取excel报错
    • ¥15 单片机学习顺序问题!!
    • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
    • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)