New to Jquery, even newer to Jquery Ajax calls – here is my problem:
I have a small form – email address submit – that fires to a PHP file which inserts the email into a table.
I want to do the following:
- Handle the form submission through Ajax so there is no refresh
- After successfully writing to the table I want to change the submit button’s text to “Success!” for 3 seconds and then back to
“Sign Up” with fadeIn and fadeOut effects.
Here is my code for the form:
<form action="" id="registerform" name="registerform" method="post" >
<input type="text" id="email" name="email" value="Email Address" onClick="empty()" onBlur="determine()" />
<button id="join" type="submit" name="join" onClick="validate()">Sign Up</button>
</form>
Here is my terrible attempt at handling the POST request through Jquery:
$('form').on('submit', function(e) {
$.post('register.php', function() {
$('#join').html('Success!')
});
//disable default action
e.preventDefault();
});
Can anyone comment on how to make the Ajax request work (doesn’t seem to be)?
Thanks in advance!
Update
Alright, the following block of Jquery adds the data to the table, however, my button text does not change:
$('form').on('submit', function(e) {
$.post('register.php', $("#registerform").serialize(), function() {
$('#join').html('Success!')
});
//disable default action
e.preventDefault();
});
Any ideas now?
Here is an example of one of my ajax calls
And on the server side
Of course this is only an example, and you may need to alter this to suit your needs 🙂
One thing to note is what
if (data == "false")does. Well on the server side i canecho "false"to tell the ajax call it was not successful.