Ajax传递空值

时间:2016-10-12 20:08:51

标签: javascript php jquery ajax

好吧所以问题是这个ajax由于某种原因传递空用户名,或者说我做错了。

JS档案

$(document).ready(function() {

    $("#register").click(function() {

        var username = $("#name").val();
        var pst = $("#pass").val();

        $.ajax({
            url: "test.php",
            data: {"function":"register",name:username, pass:pst},
            type: "POST",
            success: function(response) {
                switch(response){ 
                    case true: {
                        alert("Hello world!");
                        break;
                    }
                    case false: {
                        alert("");
                        break;
                    }
                    default: {
                        alert("Something went wrong");
                        break;
                    }
                }
            }
        });
    });

});

test.php文件

<?php
    if(isset($_POST['function'])) {
        switch($_POST['function']) {
            case "register": {
                register($_POST['name'],$_POST['pass']);
                echo $_POST['name'];
                break;
            }
            case "login": {
                login();
                break;
            }
            default: {
                echo "Boom";
                break;
            }
        }
    }
    else {
        echo "Function is not set";
    }


    function register($name, $pass) {
        if($name == "Toma") return true;
        else return false;
    }

    function login() {
        echo "<br/><br/>Test passed";
    }
?>

现在我总是得到“出错了”警报事件我输入“Toma”作为用户名

2 个答案:

答案 0 :(得分:0)

在PHP文件中echo $_POST['name']是对您的请求的响应,无论寄存器函数返回如何。如果你想显示真或假,你必须以这种方式重构你的代码:

  case "register": {
    echo register($_POST['name'],$_POST['pass']);
    break;
  }

答案 1 :(得分:0)

将其解决,我刚刚使用

if($name == "Toma") { echo("true"); }
            else { echo("false"); }

因为无论我做什么,都会返回字符串而不是布尔值