IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Actualisation d'une page par AJAX


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Par défaut [AJAX] Actualisation d'une page par AJAX
    sujet
    je veux actualiser une page web chaque 4 ms . avec AJAX
    resultat:
    rien.
    voici les codes mes amies :
    page:affichage_cam.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <html>
    <head>
    <title>CtrlCAM</title>
    <script type='text/JavaScript'>
    var xhr = null;
    function getXhr(){
    if(window.XMLHttpRequest) // Firefox et autres
    xhr = new XMLHttpRequest();
    else if(window.ActiveXObject){ // Internet Explorer
    try {
    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    else { // XMLHttpRequest non supporté par le navigateur
    alert("Votre navigateur ne supporte pas les objetsXMLHTTPRequest...");
    xhr = false;
    }
    }
    /**
    * Méthode qui sera appelée sur le click du bouton
    */
    function go(){
    getXhr()
    // On défini ce qu'on va faire quand on aura la réponse
    xhr.onreadystatechange = function(){
    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    if(xhr.readyState == 4 && xhr.status == 200){
    xhr.responsetxt;
    }
    }
    xhr.open("GET","recharger.php",true);
    xhr.send(null);
    }
    function ImageMax(chemin)
      {
       html = "<html> <head> <title>ImageMax</title> </head> <body onBlur='top.close()'><IMG src='"+chemin+"' BORDER=0 NAME=ImageMax onLoad='window.resizeTo(document.ImageMax.width+10,document.ImageMax.height+30)'></body></html>";
       popupImage =window.open('','_blank','toolbar=0, location=0, directories=0, menuBar=0, scrollbars=0, resizable=1');
       popupImage.document.open();
       popupImage.document.write(html);
       popupImage.document.close();
       }; 
    </script> 
    </head>
    <body bgcolor="#FFCC66" background="morakeb2.jpg">
    <div align="center" >
    <TABLE WIDTH=560 BORDER=0 CELLPADDING=0 CELLSPACING=0>
    	<TR>
    		<TD>
    			<A HREF="http://localhost/formation/Ajout_cam.html">
    				<IMG SRC="images/afficher3.jpg" WIDTH=144 HEIGHT=50 BORDER=0 ALT=""></A></TD>
    		<TD>
    			<A HREF="http://localhost/formation/suppression_cam.php">
    				<IMG SRC="images/supprimer3.jpg" WIDTH=137 HEIGHT=50 BORDER=0 ALT=""></A></TD>
    		<TD>
    			<A HREF="http://localhost/formation/modification_cam.php">
    				<IMG SRC="images/modifier3.jpg" WIDTH=127 HEIGHT=50 BORDER=0 ALT=""></A></TD>
    		<TD>
    			<IMG SRC="images/4_04.jpg" WIDTH=152 HEIGHT=50 ALT=""></TD>
    	</TR>
    </TABLE>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <form name="image" action="">
    <?
    $host="localhost";
    $nom="root";
    $pass="isl@m_yantasser";
    $link=mysql_connect($host,$nom,$pass) or die ("Connexion impossible");
    mysql_select_db("CTRLCAM",$link);
    $result=mysql_db_query("CTRLCAM","select * from image WHERE IdMetadomaine='".$tab[0]."'");
    echo "<div align=center>";
    echo "<table border=0>";
    echo"<tr>";
    $j=3;$s=0;
    while($row=mysql_fetch_array($result))
    {
    echo "<td><table border=1 bordercolor=black>";
    echo "<div id=123><a href=# onclick=\"ImageMax('".$row[Chemin]."')\";></div>";
    echo "<tr><td>"."<b>"."<font size=4 color=#FFFF66>"."<img height=213 width=213 src ='".$row[Chemin]."'>"."</font>"."</b>"."<br>"."</td></tr>";
    echo "<tr><td>".$row[commentaire]."</td></tr>";
    echo "</table></td>";
    $s++;
    if ($j==$s){
    echo"</tr><tr>";
    $j=$j+3;
    }
    }
    echo "</tr>";
    echo "</table>";
    ?>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <table border=0>
    <tr><td bgcolor="#808080"><span style="background-color: #808080">&nbsp;nous contacter : 
    	</span><a href="mailto:metacompes@menara.ma">
    	<span style="background-color: #808080">metacompes@menara.ma</span></a><span style="background-color: #808080">
    	</span></td>
    	<td bgcolor="#808080"><span style="background-color: #808080">&nbsp;site web: 
    	</span><a href="http://www.metacomputer.net">
    	<span style="background-color: #808080">www.metacomputer.net</span></a><span style="background-color: #808080">
    	</span></td>
    </tr>
    </table>
    </form>
    </div>
    </body>
    </html>
    page recharger.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?
    echo "<script language=javascript>";
    echo "setTimeout(location.reload(),4)";
    echo "</script>";
    ?>
    j'attend vos réponses et merci bien

  2. #2
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    4 ms c'est beaucoup trop rapide.
    cela ne laisse pas le temps a ta page de s'executer et de renvoyer le resultat.

  3. #3
    Membre éclairé Avatar de remyli
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 270
    Par défaut
    se serai plus simple pour nous si tu dépoluais ton code de tout le superfux (html, menu, tableau, gestion des colonnes etc...)

    en épurant ton code ça donne ça ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <script type='text/JavaScript'>
     
    	var xhr = null;
     
    	function getXhr(){
    		if(window.XMLHttpRequest) // Firefox et autres
    			xhr = new XMLHttpRequest();
    		else if(window.ActiveXObject){ // Internet Explorer
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		}
    		else { // XMLHttpRequest non supporté par le navigateur
    			alert("Votre navigateur ne supporte pas les objetsXMLHTTPRequest...");
    			xhr = false;
    		}
    	}
     
    	/**
    	* Méthode qui sera appelée sur le click du bouton
    	*/
    	function go(){
    		getXhr()
    		// On défini ce qu'on va faire quand on aura la réponse
    		xhr.onreadystatechange = function(){
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(xhr.readyState == 4 && xhr.status == 200){
    				xhr.responsetxt;
    			}
    		}
    		xhr.open("GET","recharger.php",true);
    		xhr.send(null);
    	}
     
    	function ImageMax(chemin)
    	{
    	   html = "<html> <head> <title>ImageMax</title> </head> <body onBlur='top.close()'><IMG src='"+chemin+"' BORDER=0 NAME=ImageMax onLoad='window.resizeTo(document.ImageMax.width+10,document.ImageMax.height+30)'></body></html>";
    	   popupImage =window.open('','_blank','toolbar=0, location=0, directories=0, menuBar=0, scrollbars=0, resizable=1');
    	   popupImage.document.open();
    	   popupImage.document.write(html);
    	   popupImage.document.close();
    	}; 
     
    </script> 
     
     
     
    <form name="image" action="">
     
    <?
    $result=mysql_db_query("CTRLCAM","select * from image WHERE IdMetadomaine='".$tab[0]."'");
    while($row=mysql_fetch_array($result))
    {
    	?>
    		<a href=# onclick="ImageMax('<? echo $row['Chemin']; ?>');">
    			<img height=213 width=213 src ="<? echo $row['Chemin']; ?>">
    		</a>
    	<?
    	echo $row['commentaire'];
    }
    ?>
     
    </form>

    ça me permet de me rendre compte que tu n'utilise pas ta fonction go()
    enfin je crois....

    tu écrit $row[commentaire] .. je sais pas si ça marche mais $row["commentaire"] mieus

    d'ou sort ton $tab[0] ?

  4. #4
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 950
    Par défaut
    tu n'utilise pas la fonction go, en effet, et tu ne fait aucun traitement, une fois la reponse du serveur recu.

    de plus, pense a renvoyer la bonne en-tete du coté php, si tu veut faire du vrai ajax (du XML)

  5. #5
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Juste comme ça pourquoi tu veux utiliser Ajax pour ça ?
    Si tu veux recharger toute ta page un bout de javascript avec un timer suffit.

    Apres si tu veux juste recharger un bout de ta page, il faut que ta page php appelée par ajax contienne la requete sql et renvoie son résultat sous forme de xml. Tu recupere ensuite ces infos dans la fonction go() (plus precisement dans la fonction que tu mets dans le xhr.onreadystatechange) et tu mets à jour ce que tu as à mettre à jour.

    Et bien sur tu rappele ta fonction go() 4ms apres la fin de celle-ci avec un setTimeout et tu n'oublies pas de l'appeler une premiere fois

Discussions similaires

  1. [AJAX] Ajax :chargement d'une page
    Par Laorra dans le forum AJAX
    Réponses: 2
    Dernier message: 11/06/2009, 19h12
  2. [AJAX] appeler une fonction par ajax
    Par k4444a dans le forum AJAX
    Réponses: 3
    Dernier message: 18/04/2009, 20h14
  3. [AJAX] Validation W3C d'une page php+ajax
    Par sixieme-sens dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2008, 14h31
  4. actualiser une Div par ajax lors d'un changement coté serveur
    Par dajij dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/08/2008, 18h17
  5. Réponses: 6
    Dernier message: 13/11/2006, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo