CariDotMy

 Forgot password?
 Register

ADVERTISEMENT

View: 2845|Reply: 13

Tutorial AJAX

[Copy link]
Post time 26-3-2007 09:04 PM | Show all posts |Read mode
mintak maaf mod.. myb dah ada kot kat thread nih tp sy tak jumpe.. so sgt kalu tak berkongsi coding kat kawan2 yg ingin belajar ajax...
ok kawan2 nih salah satu contoh apabila admin baru update content(guna backend).. dan dalam masa yg sama kita tgh bukak content(frontend) tersebut, secara langsung content tersebut akan autoupdate.. sebab coding ini guna timer + ajax.. so selamat mcuba..


  1. CREATE TABLE ajx_namatable (
  2.   id tinyint(3) unsigned default NULL,
  3.   content longtext
  4. ) TYPE=MyISAM;



  5. #
  6. # Dumping data for table 'ajx_namatable'
  7. #

  8. INSERT INTO ajx_namatable VALUES("1", "hai ini tutorial ajax.. selamat belajar yea.");
Copy the Code


HttpClient.js
  1. function HttpClient() { }
  2. HttpClient.prototype = {
  3.   
  4.   //type GET, POST passed to open
  5.   requestType:'GET',
  6.   //when set to true, async calls are made
  7.   isAsync:false,

  8.   // where an XMLHttpRequest instance is stored
  9.   xmlhttp:false,
  10.   
  11.   //what is called when a successful async call is made
  12.   callback:false,
  13.   
  14.   // what is called when send is called on XMLHttpRequest
  15.   // set your own function to onSend to have a custom loading
  16.   // effect
  17.   onSend:function() {
  18.     document.getElementById('HttpClientStatus').style.display='block';
  19.   },
  20.   
  21.   // what is called  when readyState 4 is reached, this is
  22.   // called before your callback
  23.   onload:function(){
  24.      document.getElementById('HttpClientStatus').style.display='none';
  25.   
  26.   },
  27.   
  28.   
  29.   
  30.   // what is called when an http error happens
  31.   onError:function(error){
  32.       alert(error);
  33.   },
  34.   
  35.   //ini adalah interval
  36.   interval:0,
  37.   timerId : null,
  38.   
  39.   //load Data from DB
  40.   loadData:function(){
  41.          
  42.         this.makeRequest('ajaxService.php',null);
  43.   },
  44.   

  45.   // method to initialize an xmlhttpclient
  46.   init:function(){
  47.     try{
  48.         //Mozilla / Safari
  49.         this.xmlhttp = new XMLHttpRequest();
  50.     }
  51.     catch(e)
  52.     {
  53.         //IE
  54.         var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');
  55.         var success = false;
  56.         for(var i=0;i < XMLHTTP_IDS.length && !success; i++ )
  57.         {
  58.             try{
  59.                 this.xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
  60.                 success=true;
  61.             }
  62.             catch(e){}
  63.         }
  64.         if(!success){
  65.           this.onError('Unable to Create XMLHttpRequest.');
  66.         }
  67.     }
  68.   },
  69.   
  70.   // method to make a page request
  71.   // @param string url the page to make the request to
  72.   // @param string payload What you're sending if this is a POST request

  73.   makeRequest: function(url,payload)
  74.   {
  75.       
  76.       if(!this.xmlhttp){
  77.           this.init();
  78.       }
  79.       
  80.       
  81.       this.xmlhttp.open(this.requestType,url,this.isAsync);

  82.       // set onreadystatechange here since it will be reset after a
  83.       // complete call in Mozilla
  84.       
  85.       var self = this;
  86.       
  87.       this.xmlhttp.onreadystatechange = function(){
  88.           self._readyStateChangeCallback();
  89.       }
  90.       
  91.       this.xmlhttp.send(payload);
  92.       
  93.       if(!this.isAsync){
  94.         return this.xmlhttp.responseText;
  95.       }
  96.       
  97.   },
  98.   
  99.    _readyStateChangeCallback:function()
  100.    {
  101.           switch(this.xmlhttp.readyState)
  102.           {
  103.               case 2:
  104.                   this.onSend();
  105.                   break;
  106.                   
  107.               case 4:
  108.                   this.onload();
  109.                   if(this.xmlhttp.status==200){
  110.                     return this.callback(this.xmlhttp.responseText);
  111.                   }else{
  112.                     this.onError('Http Error '+this.xmlhttp.status+' - '+this.xmlhttp.statusText);
  113.                   }
  114.                   break;
  115.           }
  116.       
  117.       
  118.    }
  119.    
  120. }
Copy the Code


index.html
  1. <html>
  2. <head>
  3. <title>Contoh</title>

  4. <script type="text/javascript" src="HttpClient.js"></script>
  5. <script type="text/javascript">
  6.       var client = new HttpClient();

  7.       client.isAsync = true;



  8.       client.callback = function(result)
  9.       {
  10.           var content = client.xmlhttp.responseText;
  11.           document.getElementById('target').innerHTML=content;
  12.       }

  13.       function load(){
  14.         client.loadData();
  15.       }
  16.           client.interval=3000;
  17.           client.timerId = window.setInterval("load()", client.interval);


  18. </script>
  19. </head>
  20. <body >

  21. <div id="HttpClientStatus" style="position: absolute; width:100px; height:20px;
  22.         top:5px; right:5px; display:none">Loading ..</div>

  23. <div id="target" style="width:300px height:300px; border: solid 1px black"></div>

  24. </body>
  25. </html>
Copy the Code



mysql_connect.php
  1. <?php #mysql_connect.php

  2. /* Set the database access information
  3.    constant
  4. */

  5.   define ('DB_USER','root');
  6.   define ('DB_PASSWORD','');
  7.   define ('DB_HOST','localhost');
  8.   define ('DB_NAME','ajaxdb');

  9. /* Make the connection and then select
  10.    the database.
  11. */
  12.   $dbc = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
  13.   mysql_select_db(DB_NAME);
  14. ?>
Copy the Code



ajaxService.php
  1. <?php

  2.   require_once('mysql_connect.php');
  3.   $query = " SELECT * FROM ajx_namatable WHERE id=1";
  4.   $result = mysql_query($query);
  5.   $row = mysql_fetch_array($result);  //error

  6. echo "
  7. <span style='background-color: #C6E1FD'>Home</span>
  8. <p> </p>
  9. <p align='center'>".$row[1]."</p>
  10. ";

  11. ?>
Copy the Code
Reply

Use magic Report


ADVERTISEMENT


Mr.Forensics This user has been deleted
Post time 26-3-2007 09:51 PM | Show all posts
tutorial ni mengelirukan.macam bermula kat tengah-tengah pages.takde hujung dan takde pangkal.tatau nak insert parameter dan script ni kat mana.tatau nak execute camana.tatau nak create table belah mana.tatau nak kerat database seksyen mana.kalau buleh bagi explanation tu lebih2 sikit,yang melawat thread nih bukannya semua expert pun,contohnya cam aku.terima kasih....
Reply

Use magic Report

Post time 26-3-2007 10:37 PM | Show all posts

Reply #2 Mr.Forensics's post

ye ye.. aku pun berpinar tgk ni...
letih komen lebih sikit boleh?
Reply

Use magic Report

 Author| Post time 27-3-2007 12:34 AM | Show all posts
keke... sori2..
mmula disebabkan aku guna php.. so korang kene install appserv(apache php n mysql) dulu kat c:\
pastikan korang dah create new db yea.. nama db korang letak la ajaxdb..

ok 1st sekali korang nmpk apa yg aku post

code pertama tuh kan.. iaitu memula kita create table dulu cam dalam contoh aku kasik tuh dan sql utk insert value dulu....
CREATE TABLE ajx_namatable (
  id tinyint(3) unsigned default NULL,
  content longtext
)

INSERT INTO ajx_namatable VALUES("1", "hai ini tutorial ajax.. selamat belajar yea.");


pastu korang copy coding satu lagi iaitu bah. HttpClient.js, dan coding index.html, mysql_connect.php dan last sekali copy coding ajaxService.php
bermaksudnya korang ada 4 file(1 javascript, 1 html dan 2 fail php...).
so copy file2 nih letak dalam folder C:\AppServ\www\ajax      <---- folder ajax nih korang create la yea..

pastu run dengan cara bukak ie or mozilla.. then tulis http://localhost/ajax/index.html pastu korang akan nmpk data yg terpapar
"hai ini tutorial ajax.. selamat belajar yea."    dalam masa yg sama korang bukak db then bukak table ajx_namatable then cuba ubah data dalam field
content tuh.. then secara tak langsung page yg korang bukak td.. data yg display kat index.html turut brubah tanpa refresh page..



Reply

Use magic Report

 Author| Post time 27-3-2007 12:41 AM | Show all posts
adeh takdapat nak masuk thread nih sebab takcukup RA.. huhu kalu leh tau apa content utk send sms thru website

Hantar Free SMS melalui Website - [Reading Access 2]
Reply

Use magic Report

Post time 27-3-2007 01:07 PM | Show all posts
Tak cukup RA? Rasanya tak letak reading acces pun, nanti saya check balik.

Anyway good start on AJAX. AJAX memang canggih.

Maybe liverpool boleh bagi penerangan yang lebih detail.
Reply

Use magic Report

Follow Us
Post time 27-3-2007 01:11 PM | Show all posts
Tak pun kalau nak buat beginners AJAX try to do a Hello world app, AjJAX style, and work from there. Ni siap ada database and PHP sekali takut confusing.
Reply

Use magic Report

Post time 27-3-2007 01:34 PM | Show all posts
Tadi guna javascript ni kat asp.net...
apa yg nak dibuat jd dengan jayanya kalau page tu hanya melibatkan paparan sahaja...

tp kalau isi benda dalam textbox atau klik combobox, terus jadi default view semula... segala-galanya kosong...
camne nak buat yer?
Reply

Use magic Report


ADVERTISEMENT


 Author| Post time 27-3-2007 02:14 PM | Show all posts
ok ok.. sori.. aku akan bagi start dari awal yea.. ok
lagipun ajax ni bukanla bahasa pgram yg baru dan bukan benda yg baru..
Ajax lebih sebagai method atau teknik.
ok kita pegi tutorial asas dulu.. myb senang utk kita tau secara asas dahulu..

skrin kita nih ada dua inputtext.. bernama username dan time,
apabila kita taip jer kat inputtext username tuh.. berlaku proses pada property onkeydown dimana proses ini memanggil function ajaxFunction()
  1. <input type="text" onkeydown="ajaxFunction();" name="username" />
Copy the Code


dan dalam function ajaxFunction tuh sy letak satu coding cam bawah nih,
  1. xmlHttp.open("GET","testAjaxClass.php",true);
Copy the Code

fungsinya memanggil file testAjaxClass.php tersebut.

fungsi testAjaxClass.php ini hanya mmpaparkan date.. iaitu mggunakan
  1. $today = date("H:i:s");

  2.   echo $today;
Copy the Code



apabila page testAjaxClass.php dipanggil secara taklangsung
fungsi  xmlHttp.responseText berfungsi.... mende nih untuk mgambil value apa yg dipaparkan pd testAjaxClass.php(echo "$today")
  1. document.myForm.time.value=xmlHttp.responseText;
Copy the Code




ok aku bagi full contoh nih,ada 2 fail yg terlibat iaitu

1 - File index.htm
  1. <html>

  2. <body>



  3. <script type="text/javascript">

  4. function ajaxFunction()

  5.   {

  6.   var xmlHttp;

  7.   try

  8.     {

  9.     // Firefox, Opera 8.0+, Safari

  10.     xmlHttp=new XMLHttpRequest();

  11.     }

  12.   catch (e)

  13.     {

  14.     // Internet Explorer

  15.     try

  16.       {

  17.       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

  18.       }

  19.     catch (e)

  20.       {

  21.       try

  22.         {

  23.         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

  24.         }

  25.       catch (e)

  26.         {

  27.         alert("Your browser does not support AJAX!");

  28.         return false;

  29.         }

  30.       }

  31.     }

  32.     xmlHttp.onreadystatechange=function()

  33.       {

  34.       if(xmlHttp.readyState==4)

  35.         {

  36.         document.myForm.time.value=xmlHttp.responseText;

  37.         }

  38.       }

  39.     xmlHttp.open("GET","testAjaxClass.php",true);

  40.     xmlHttp.send(null);

  41.   }

  42. </script>



  43. <form name="myForm">

  44. Name: <input type="text"

  45. onkeydown="ajaxFunction();" name="username" />

  46. Time: <input type="text" name="time" size="30"/>

  47. </form>



  48. </body>

  49. </html>
Copy the Code



dan file testAjaxClass.php
  1. <?php



  2.   //date_default_timezone_set('UTC');

  3.   $today = date("H:i:s");

  4.   echo $today;

  5. ?>
Copy the Code

[ Last edited by  liverpoolfctv at 27-3-2007 02:17 PM ]
Reply

Use magic Report

 Author| Post time 27-3-2007 02:20 PM | Show all posts
tp stil guna file php gak,.. hehehe
Reply

Use magic Report

Post time 27-3-2007 02:40 PM | Show all posts
sori nyampok.. saya bkn orang yg involve dlm hal2 programming ni..
so.. nak tanya la.. pe AJAX tuh?? pe kelebihan die??
klo AJAX FABULOSO.. sy tau la..
hehe...
Reply

Use magic Report

 Author| Post time 27-3-2007 02:50 PM | Show all posts
Originally posted by king_kenny at 27-3-2007 02:40 PM
sori nyampok.. saya bkn orang yg involve dlm hal2 programming ni..
so.. nak tanya la.. pe AJAX tuh?? pe kelebihan die??
klo AJAX FABULOSO.. sy tau la..
hehe...


erks.. susah nk tolong la kalu kes camni hehehee.. takpe nnt bla dah involve progrmming mesti tau punya..
Reply

Use magic Report

Post time 27-3-2007 11:38 PM | Show all posts
AJAX - Advanced JavaScript and XML

Ia merupakan satu teknik programming yang memboleh web applications bertindak semacam window applications. Maknanya page boleh refresh dengan sendirinya, data update secara spontan tanpa perlu navigate ke web page yang berikutnya, boleh drag/drop items in the web page window etc.

Contoh web pages yang guna AJAX:
mail.google.com
www.meebo.com (this is a really good example)
mail.yahoo.com (yang version baru punya)
Reply

Use magic Report

 Author| Post time 28-3-2007 07:57 PM | Show all posts
yup itu la pengenalan ttg AJAX.. cam aku nih pandai mcoding je.. kekeke.. cam aku pun dah guna ajax setiap system yg aku develop..
Reply

Use magic Report

You have to log in before you can reply Login | Register

Points Rules

 

ADVERTISEMENT



 

ADVERTISEMENT


 


ADVERTISEMENT
Follow Us

ADVERTISEMENT


Mobile|Archiver|Mobile*default|About Us|CariDotMy

31-12-2024 06:16 AM GMT+8 , Processed in 0.051904 second(s), 28 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

Quick Reply To Top Return to the list