lavet et hurtigt eks (ikke testet)
men en lille tekst til hvad der sker i ajax kaldet.
login_ajax.php
- $username = $_POST["username"]; //<- husk anti sql injections
- $password = $_POST["password"]; //<- husk anti sql injections
- $db = mysql_query("SELECT ... WHERE username='$username' && password='$password'");
- if(mysql_num_rows($db) > 0){
- //sæt login session osv her..
- echo json_encode(array("logged_in" => true));
- }else{
- echo json_encode(array("logged_in" => false));
- }
login.html
- <div id="form">
- <input type="text" name="username" />
- <input type="password" name="password" />
- <a href="javascript:void(0);">login</a>
- </div>
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
- <script type="text/javascript">
- //koden i boxen nede under her..
- </script>
- $(document).ready(function(){
-
- $("div#form a").click(function(){
-
- $.ajax({
- //filen vi ønsker at ajax skal kalde
- url: "login_ajax.php",
-
- //typen som vi kender den fra en form, POST, GET (PUT, DELETE)
- type: "POST",
-
- //den data-streng vi ønsker at sende til vores php fil. $_POST["username"] og $_POST["password"] @ php
- data: ({
- username: $("div#form input[name=username]").val(),
- password: $("div#form input[name=password]").val() //<-- kan anbefales at køre det gennem en form for hash først (md5 etc).
- }),
-
- //datatypen for det vi får retur fra php-filen (login_ajax.php)
- dataType: "json",
-
- //når vi har fået svar fra php
- success: function(result){
- //result er vores array fra php (i json format)
- //php: $data["logged_in"] -> json: result.logged_in
-
- if(result.logged_in){
- //sæt farven til gørn
- $("div#form input").css({
- "background-color": "green"
- });
- }else{
- //sæt farven til rød
- $("div#form input").css({
- "background-color": "red"
- });
- }
-
- },
-
- //hvis vi ikke kan komme i kontakt med php, eller det data vi har modtaget ikke er i den ønsket datatype(json)
- error : function(err){
- console.log(err);
- //sæt farven til rød
- $("div#form input").css({
- "background-color": "red"
- });
- }
-
- }); //ajax
-
- }); //click
-
- }); //dom ready
ellers som martin forslår, få php til at sende det tilbage med farver på