Alright so the problem is that this ajax is passing empty username for some reason, or maybe I am doing something wrong.
JS File
$(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;
}
}
}
});
});
});
The test.php file
<?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";
}
?>
Now I am always going to get "Something went wrong" alert eventho I entered the "Toma" as username
In your PHP file echo $_POST['name']
is the response to your request regardless of register function return. if you wanna display a true or false you have to refactor your code this way:
case "register": {
echo register($_POST['name'],$_POST['pass']);
break;
}
Figurated it out, I just used
if($name == "Toma") { echo("true"); }
else { echo("false"); }
Since it seems whatever I do, string will be returned instead of a boolean