Im trying to get data from my php file using success function(data)
When im using console.log(data) i get; true/false/exists But i cant make a if statement, if i do it dosent alert!!
Heres my js file
function ajaxCall(username, email, password){
$.ajax({
type: 'POST',
url: '../register.php',
data: {
'username' : username,
'email' : email,
'password' : password,
},
success: function(data) {
if(data === "exists")
alert("user exists");
}
});
}
heres my .php file
<?php
$servername = "#";
$username = "#";
$password = "#";
$dbname = "#";
$regusername = $_POST['username'];
$email = $_POST['email'];
$regpassword = $_POST['password'];
$mysqli = new mysqli($servername, $username, $password, $dbname);
$selectQuery = "SELECT username FROM users WHERE username = '$regusername'";
$select = $mysqli->query($selectQuery);
// var_dump($select->num_rows);
if( $select->num_rows == 0) {
$insertQuery = "INSERT INTO users (username, password, email) VALUES ('$regusername','$regpassword','$email');";
$insert = $mysqli->query($insertQuery);
if( $insert == true) {
echo "true";
}else {
echo "false";
}
}else {
echo "exists";
}
?>
Use a properly structured data format, such as json:
php:
$data=['exists'=>false];
if( $select->num_rows == 0) {
$insertQuery = "INSERT INTO users (username, password, email) VALUES ('$regusername','$regpassword','$email');";
$data['inserted'] = (bool) $mysqli->query($insertQuery);
}else {
$data['exists']=true;
}
header('Content-Type: application/json');
echo json_encode($data);
die();
JS
$.ajax({
type: 'POST',
url: '../register.php',
data: {
'username' : username,
'email' : email,
'password' : password,
},
success: function(data) {
if(data.exists){
alert("user exists");
}elseif(data.inserted){
alert("inserted");
}else{
alert("did not insert");
}
});