Reputation: 329
There are a couple of alert()
calls in the jQuery which are showing up, but the alert
inside the $.post
does not seems to respond. I already tested the PHP code and it works fine. I think it is my path
, but I already check them before.
<form id="login-form" method="post" class="form-inline" target="_top">
<input type="text" tabindex="2" id="username" placeholder="Username" name="email" class="inputtext">
<input type="password" tabindex="3" id="userpass" placeholder="Password" name="pass" class="inputtext">
<button tabindex="4" id="loginButton">Login</button>
</form>
$(document).ready(function(e) {
$('#loginButton').click(function(e) {
alert("start function");
$.post('../php/login.php', {
'username': $('#username').val(),
'userpass': $('#userpass').val()
}, function(data){
alert(data);
});
alert("end function");
});
});
<?php
require('config.php');
$queryStmt = 'SELECT user_first, user_last FROM users WHERE user_name=:sqlIdName AND user_password=:sqlPass';
$queryPrepare = $dba_connect->prepare($queryStmt);
$queryPrepare->execute(array(':sqlIdName'=>$_POST['username'],':sqlPass'=>md5($_POST['userpass'])));
$queryResult = $queryPrepare->fetch(PDO::FETCH_ASSOC);
$queryPrepare->closeCursor();
var_dump($queryResult);
if ($queryResult == false)
return false;
else
return true;
?>
My file structure is this:
Upvotes: 1
Views: 56
Reputation: 8101
Try this:
$(document).ready(function(e) {
$('#loginButton').click(function(e) {
$.post('../php/login.php', {
functions: 'userLogin',
username: $('#username').val(),
userpass: $('#userpass').val()
}).done(function( data ) {
alert("Data Loaded: " + data);
});
});
});
Upvotes: 0
Reputation: 12085
try this .its not exact ans may be the solution for it.
echo string in php server side something like this
if ($queryResult == false)
echo 'false';
else
echo 'true';
and then change your jquery to
function(data){
if(data=='true')
{
alert(data);
}
else
{
alert(data);
}
});
Upvotes: 1
Reputation: 337560
The button
is actually submitting the form normally as you have not given it a type="button"
attribute, nor are you using preventDefault()
on the click event itself.
Regardless of that, it is much better practice to hook to the submit
event of the form
, not the click
of the button. Try this:
$('#login-form').submit(function(e){
e.preventDefault(); // stop standard form submission
$.post('../php/login.php', {
'username': $('#username').val(),
'userpass': $('#userpass').val()
}, function(data){
console.log(data);
});
});
You may also want to return something other than a boolean value from your PHP code, as it will just be turned in to a single string response. JSON would seem to be the best fit for your case, check out the json_encode
function.
Finally, note that you should always use console.log
for debugging as it does not coerce data types.
Upvotes: 2