Ajax form validation with mysqli_query
So far, I've used pure javascript to validate my form, but I need to add a mysqli query to the mix. Only I'm not that good with jquery and ajax. I can make a simple login form, but it's a little more complicated. can anyone give me any guidance as to how I can add a jquery / ajax component to test this:
foreach($_POST as $key=> $for) {
if(!empty($for) && $key != 'send' && $key != 'title') {
$usercheck = "SELECT email FROM users WHERE email = '$for'";
$usercheck = $db->query($usercheck);
if($usercheck->num_rows > 0) {$x="1"; continue;}
if($usercheck->num_rows == 0){$x="2"; break;}
}
}
if($x == "2") {$message = $for." is not a regestered email";}
if($x == "1") { // valid - submit.
+3
source to share
2 answers
what you can do is send $. post as follows:
$.post("test.php", { "post1": "something", "post2":"somethingelse" }, // those will be sent via post to test.php
function(data){// the returned data
console.log(data.return1); // here just logging to the console. **optional**
console.log(data.return2);
// complete your process
}, "json"); // specifying the type as json also optional
in test.php
foreach($_POST as $key=> $for) {
if(!empty($for) && $key != 'send' && $key != 'title') {
$usercheck = "SELECT email FROM users WHERE email = '$for'";
$usercheck = $db->query($usercheck);
if($usercheck->num_rows > 0) {$x="1"; continue;}
if($usercheck->num_rows == 0){$x="2"; break;}
}
}
if($x == "2") {$data['message'] = $for." is not a regestered email";
echo json_encode($data); // echo to pass back to $.post .. json_encode() in case of using json
}
if($x == "1") { // valid - submit
$data['message'] = 'valid'; // pass the message as valid post
echo json_encode($data);
}
Remember:
If you are submitting the form submit to add event.preventDefault()
to the javascript function to handle the form manually. Here you can find more about it.
+1
source to share
Take a look at the Ajax Form Plugin http://malsup.com/jquery/form/ .
For example, use it like this:
$(document).ready(function() {
$('#myForm').ajaxForm(
{
beforeSend: function() {
},
success: function(response)
{
//wow, it worked, let do something with response
},
uploadProgress: function(event, position, total, percentComplete) {
/*e.g. a upload percentage label */
//var percentVal = percentComplete + '%';
//$('#myLoadingDiv').html(percentVal);
},
cache: false,
});
});
0
source to share