Ajax提交php中的表单序列化数据为空

时间:2016-11-23 14:33:53

标签: javascript php jquery json ajax

我一直在搜索所有相关问题,但仍然无法弄清楚我遇到的问题。

我使用的是简单的模态形式:

     <p id="messages">Let's make today a great day!</p>
<form id="myloginform" name="myloginform" action="scripts/login.php" method="post" >
    <div class="form-group">
    <label for="username" class="">Enter username</label>
    <input type="text" class="form-control input-lg c-square" id="username" name="username" placeholder="Username"  required> </div>
    <div class="form-group">
    <label for="password" class="">Enter pass</label>
    <input type="password" class="form-control input-lg c-square" id="password" name="password" placeholder="Password" required> </div>
    <div class="form-group">
    <div class="c-checkbox">
    <input type="checkbox" id="login-rememberme" class="c-check">
    <label for="login-rememberme" class="c-font-thin c-font-17">
    <span></span>
    </div>
    </div>
    <div class="form-group">
    <button type="submit" class="btn c-theme-btn btn-md c-btn-uppercase c-btn-bold c-btn-square c-btn-login" id="check">login</button>

    </div>

    </form>

我使用ajax将表单传递给php文件:

     <script>
   $(document).ready(function(){

            $('form#myloginform').submit(function(e) {

                var my_data = $('form#myloginform').serialize();

                $.ajax({
                    type        : 'POST',
                    url         : 'scripts/login.php',
                    cache       : false,
                    data        : my_data,
                    contentType : false,
                    processData : false,
                    dataType: 'json',

                    success: function(response) {
                        //TARGET THE MESSAGES DIV IN THE MODAL
                        if(response.type == 'success') {
                            $('#messages').addClass('alert alert-success').text(response.message);
                        } else {
                            $('#messages').addClass('alert alert-danger').text(response.message);
                        }
                    }
                });
                e.preventDefault();
            });
        });
        </script>

login.php文件非常简单,并返回一个json $ output response

<?php
  $username = $_POST['username'];
  $password = $_POST['password'];

    if($username == "Test"){
    $success = true;
    }

if($success == true) {
    $output = json_encode(array('type'=>'success', 'message' => $username));
} else {
    $output = json_encode(array('type'=>'error', 'message' => $username));
}

die($output);
?>

每种情况下的$输出都返回null。我用firebug检查过,一切正常,没有错误,POST完美仍然无法让php中的变量工作。有任何想法吗 ???我的方法有问题,还是我需要反序列化php文件中的数据,不知何故...... ???

1 个答案:

答案 0 :(得分:0)

不要使用骰子。 使用回声或打印。
还将contentType设置为true。