好吧所以问题是这个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”作为用户名
答案 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"); }
因为无论我做什么,都会返回字符串而不是布尔值