Ajax - Reexecuter javascript

Fermé
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 - 31 janv. 2012 à 18:30
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 - 3 févr. 2012 à 12:51
Bonjour,
<html><body><div id="Header">Lien01 lien02</div><div id="Ajaxcontent">blablabalbalabla<script type="text/javascript">...</script></div><div id="Content"></div></body></html>


En gros j'ai une page avec un div #Ajaxcontent Quant je clique sur un lien l'url ne change pas mais le contenu du div est remplacer(avec wajaxisation.js).

J'utilise un slider en javascript(sans jquery). Le javascript est placé dans la page en dessous du slider entre les balise <script type="text/javascript"></script>Le problème c'est qu'il n'est pas réinterpréter.
Par exemple a un endroit du javascript j'ai cela:
nbi=<?php echo ($i); ?>
Sur la page1 qui contient 4 image il met sort nbi=4
mais sur la page2 qui contient 2 image il met ressort nbi=4 au lieu de nbi=2

Lorsque je change le contenu il devrai logiquement changer ce chiffre vu que la valeur de $i change en fonction des page (j'ai vérifier en l'affichant sur la page directement et la il n'est pas pareil. C'est donc uniquement dans le javascript que le changement ne se fait pas.

Quelqu'un saurai comment faire pour que le changement s'effectue aussi dans le javascript?


4 réponses

afrnos Messages postés 59 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 16
31 janv. 2012 à 19:19
Je ne suis pas sur d'avoir bien compris le fonctionnement de ton script.

Si la partie :
nbi=<?php echo ($i);?> 

est chargée sur ta page principale, c'est normal que le javascript ne redéfini pas la variable "nbi". Car ton code javascript a été défini avec la première variable PHP "$i".

Si tu pouvais me montrer ton code javascript, surtout la partie où est défini ta variable "nbi", ca serait plus simple.
0
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
1 févr. 2012 à 09:38
Hello,

En effet, pour changer la valeur de nbi il faut que ton JS appelle du PHP qui fournit la nouvelle valeur. Ensuite avec la méthode eval() tu la convertis en chiffre, et tu l'insères en JS.

Si tu insères du code PHP avec du JS ça ne sera pas interprété car le PHP n'est pas interprété côté client, mais côté serveur, à l'inverse du JS.
0
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 28
2 févr. 2012 à 13:42
Okay je crois avoir compris le truc. J'éssaye ca se soir et je repasse dire ce qu'il en est. En tout cas Merci de vos réponses !
0
zecka Messages postés 115 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 2 décembre 2015 28
3 févr. 2012 à 12:51
Je n'y parvient pas.


bon concrétement j'ai ce code qui me permet d'avopir un changement de page sans la rafraichir. Je pars d'une page avec uniquement du texte et j'arrive sur une autre page qui contient un slider jquery. qu'est ce que je dois rajouter pour que le slider fonctionne sur la deuxieme page ? (si jouvre la page indépendamment le slider fonctionne très bien)
function ajax_page_advanced(ele,msg,url){
	$(ele).slideUp("slow", function(){
		$(ele).html(msg).show("slow", function(){
			$(ele).load(url+" "+ele, null, function(){
				var tampon = $(ele).html();
				$(ele).html(msg).hide("slow",function(){
					$(ele).html(tampon);
					$(ele).slideDown("slow");
					
					
				});
			});
		});
	});
}
/* Fonction de chargement ajax simple */
function ajax_page(ele,msg,url){
	$(ele).html(msg).load(url+" "+ele);
}
/* Fonction de chargement ajax simple, mais avec un delai pour la demo */
function ajax_page_delayed(ele,msg,url){
	$(ele).html(msg);
	setTimeout(function(){
		$(ele).load(url+" "+ele);
	}, 1500)
}

/* Une fois la page chargée */
$(document).ready(function(){
	//Application du chargement ajax avec animation sur les liens ayant une classe "wajax"
	$("a.wajax").click(function(){
		ajax_page_advanced('#main-content','<p style="text-align: center">Chargement ...</p>',this.href);
		return false;
		
	});
	//Application du chargemetn ajax simple sur tous les liens se trouvant dans le conteneur "menu1"
	$("#menu1 a").click(function(){
		ajax_page_delayed('#main-content','<p style="text-align: center">Chargement ...</p>',this.href);
		return false;
	});
});
0