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
Code :
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" );
}
L'appelle d'une fonction :
Code :
<a href='#' onClick="moteur('moteur.php?page=accueil');">Retour à l'accueil</a>
La page moteur.php :
Code :
<?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');
}
?>
Et enfin je charge un page, voici un exemple :
Code :
<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>
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.
Y a t'il un moyen "compiler" les fonctions incluse avec cette ligne : document.getElementById("corpsDuSite" ).innerHTML = file(URL,"text" ); ?
Vous pensez quoi de faire un site en ajax? Est ce que c'est vraiment utile ou c'est juste une forme de sadomasochisme?
Merci d'avance !