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 du Club
    Inscrit en
    Décembre 2005
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 167
    Points : 47
    Points
    47
    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
    C'est trés bon de savoir qu'il y a un paradis a l'aprévie car la vie c'est rieeeeeeen

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    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.
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  3. #3
    Membre habitué 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
    Points : 151
    Points
    151
    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] ?
    Orthographe => Message Privé constructif svp

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 948
    Points : 719
    Points
    719
    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 émérite 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 : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    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
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

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