Salut
J'essai de developper un site tout en Ajax, qui est censé ne jamais se recharger, je passe donc par plusieurs fonction que voici :
Les fonctions javascript
L'appelle d'une fonction :
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 function file(fichier, mode){ if(mode == "undefined"){ mode = "XML"; } if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) { if(mode == "XML"){ return(xhr_object.responseXML); } else { return(xhr_object.responseText); } } else { return(false); } } function moteur(URL){ document.getElementById("corpsDuSite").innerHTML = file(URL,"text"); }
La page moteur.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <a href='#' onClick="moteur('moteur.php?page=accueil');">Retour à l'accueil</a>
Et enfin je charge un page, voici un exemple :
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 <?php include('scripts/include.php'); if(isset($_GET['page'])) { switch($_GET['page']) { case'admin/accueil':include('admin/accueil.php');break; case'admin/formLive':include('admin/formLive.php');break; case'reunion':include('reunion.php');break; case'live':include('live.php');break; default:include('accueil.php'); } } else { include('accueil.php'); } ?>
Sur la dernière page, quand on clique sur la date. La fonction "test()" devrai réagir, sauf qu'elle à été inclue en javascript dans ma div corpsDuSite et donc il doit lui manquer une sorte de compilation, le navigateur me revoit "test is not defined". J'ai j'ai la solution de charger toute les fonctions javascript dés le 1er chargement mais ne me plais qu'a moitié. Déjà ça peut faire crade comme codage et en + ça va mettre du temps à tout charger lors du 1er chargement.
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 <script> function test(){ alert('ça marche!'); } </script> <table border='1'> <tbody id="reunion"> <tr> <th width='300'>Lieu</th><th>Date</th><th>Heure</th> </tr> <?php $i=0; $reunion1 = requete("select numReunion, lieu, DATE_FORMAT(date,'%d/%m/%Y') as date, DATE_FORMAT(date,'%H:%i') as heure from _jourj_Reunions order by numReunion asc"); while($reunion = mysql_fetch_object($reunion1)){ echo "<tr id='".$reunion->numReunion."'>\n"; $nbMessage1 = requete("select * from _jourj_MessagesLive where numReunion=".$reunion->numReunion); $nbMessage = mysql_num_rows($nbMessage1); if($nbMessage != 0){ echo "<td><a href='#' onClick='moteur(\"moteur.php?page=live&numReunion=".$reunion->numReunion."\")'>".$reunion->lieu."</a></td>\n"; } else { echo "<td>".$reunion->lieu."</td>\n"; } echo "<td><a href='#' onClick='test()'>".$reunion->date."</a></td>\n"; echo "<td >".$reunion->heure."</td>\n"; echo "</tr>\n"; $i++; } ?> </tbody> </table>
Y a t'il un moyen "compiler" les fonctions incluse avec cette ligne : document.getElementById("corpsDuSite").innerHTML = file(URL,"text"); ?
Merci d'avance !
Partager