Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2011, 15h13   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 75
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 75
Points : 10
Points : 10
Par défaut Actualiser multiples div en ajax ?

Bonjour,

Pour commencer, je suis nul en ajax!

page1.php :
J'envoie une requête à "page2.php" qui transmet un "id" et je récupère la réponse dans "div=affiche".
Code :
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
 
<script type="text/javascript">
 
function ajax(page, fonction)
{
    var xhr=null;
 
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) 
    {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.open("GET", "" + page + "?" + fonction + "", false);
    xhr.send(null);
 
    document.getElementById('affiche').innerHTML = xhr.responseText;
 
}
 
</script>
 
<div id="affiche">
<? 
if($moncookie[24]==24){
	echo 'Annonce sauvegardé.';
}
else{
	echo '<a href="javascript:ajax(\'page2.php\', \'id=24\');">Sauvegarder cette annonce?</a>';
}
?>
</div>
page2.php :
Cette page est chargé de créer des cookies en fonction de "l'id" reçut.
Code :
1
2
3
4
5
 
<?php
$id = $_GET['id'];
setcookie("moncookie[$id]", "$id", time()+60*60*24*365);
?>
Jusque la, pas de soucis!
Comme j'ai plusieurs "id", j'ai forcément plusieurs cookies de créés mais comme mon div utilise un "unique id" seul le premier fonctionne.

Comment transformer mon code pour que je puisse utiliser une suite de div associé chacun à un identifiant unique du style :

Citation:
<div id="affiche1">
mon texte
</div>
<div id="affiche2">
mon texte
</div>
<div id="affiche3">
mon texte
</div>
?

Merci
__________________
Petites annonces gratuites en France et Dom/Tom pour particuliers et professionnelles
tryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 16h40   #2
Candidat au titre de Membre du Club
 
Inscription : septembre 2010
Messages : 75
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 75
Points : 10
Points : 10
Re,

J'avance un petit peut ...
Si dans la fonction ajax je fais :
Code :
1
2
 
document.getElementById('affiche' + '24').innerHTML = xhr.responseText;
Puis :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<div id="affiche24">
<? 
if($moncookie[24]==24){
	echo 'Annonce sauvegardé.';
}
else{
	echo '<a href="javascript:ajax(\'page2.php\', \'id=24\');">Sauvegarder cette annonce?</a>';
}
?>
</div>
ça fonctionne. Il faut donc (je suppose) que je boucle sur la fonction dans le style :
Code :
1
2
3
 
     for(var i=0; i<n; i++)
    document.getElementById('affiche' + i).innerHTML = xhr.responseText;
..mais ça ne fonctionne pas car je suis obligé d'actualiser la page manuellement pour afficher les "div" !
__________________
Petites annonces gratuites en France et Dom/Tom pour particuliers et professionnelles
tryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 10h01   #3
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Il faut que tru crées un nouveau div à la volée au retour de ta requête ajax (pourquoi une requête synchrone d'ailleurs ? ) avec quelque chose comme
Code javascript :
1
2
3
4
var d = document.createElement("DIV");
d.id = prochainId;// la variable prochainId étant calculée en fonction des divs déjà présents dans le conteneur
//(ça peut être simplement une variable globale, ou un input hidden, ou une propriété d'un objet global, etc. à voir selon ton contexte)
document.getElementById("idDuConteneurDesDivs").appendChild(d);
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h58.


 
 
 
 
Partenaires

Hébergement Web