pb de fonction js

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb de fonction js

par Invité » 29 mars 2007, 18:05

je voulais dire: le pb n'a rien à voir avec php

par Invité » 29 mars 2007, 18:04

en fait le php n'a rien à voir avec php. C'est du pur javascript.
Un simple alert("&"); me renvoie &
Le pire c'est que alert("&"); me renvoie aussi &

La g suis perdu, honneur aux connaisseurs.

par Invité » 29 mars 2007, 17:21

j'ai tenté ceci:
var toto =  "<?php echo html_entity_decode($url_asso); ?>"; 
alert(toto);
ça ne change rien. Dans mon url php, j'ai également essayé de mettre les & en & mais c'est pas mieux...

par mere-teresa » 29 mars 2007, 16:59

par Invité » 29 mars 2007, 16:45

pareil avec htmlentities, rien de changé.

par Invité » 29 mars 2007, 14:23

Le pb a été résolu en enlevant les return, et en ajoutant var pour les déclarations de variables. Je te remercie pour le conseil.

J'ai un autre pb de php vers javascript.
J'ai une variable php comme suit:
$url ="index.php?option=com_content&task=view&id=45&Itemid=64";
Je souhaite passer cette variable à Javascript, comme ceci:
var toto = "<?php echo $url_asso; ?>";
alert(toto);
ça me renvoie:
index.php?option=com_content&task=view&id=45&Itemid=64
On voit que les & sont transformés en &
J'ai tenté urlencode/urldecode mais ça ne change rien.
Comment résoudre ce pb?

par Ryle » 29 mars 2007, 11:37

Si jamais l'un de tes index (i, j, k, l ...) est à 0, c'est à dire sur le premier élément de ta liste déroulante, alors tu exécutes l'inscruction return :
if (i == 0) return; 
Javascript sort donc de la fonction (sans retourner de valeur puisqu'aucun paramètre n'est spécifié après return) et n'exécutera pas le code qui suit, et n'ira donc probablement pas jouer ton alert() qui se trouve à la fin de celle-ci :)

par Invité » 29 mars 2007, 11:36

j'ai enlevé une grosse partie des instructions pour voir si c'est mieux.
Ceci marche
function Lien() {

	i = document.getElementById("Liste1").selectedIndex;
	if (i == 0) return;
	urli = document.getElementById("Liste1").options[i].value;

	var toto = "xxx";
	alert(toto);

}
Mais ceci ne marche pas
function Lien() {

	i = document.getElementById("Liste1").selectedIndex;
	if (i == 0) return;
	urli = document.getElementById("Liste1").options[i].value;

	j = document.getElementById("Liste2").selectedIndex;
	if (j == 0) return;
	urlj = document.getElementById("Liste2").options[j].value;

	var toto = "xxx";
	alert(toto);

}
Il y a donc un pb après le 1er bloc d'instructions, mais je ne vois pas lequel...

pb de fonction js

par Invité » 29 mars 2007, 11:19

Bonjour à tous,
J'ai créé un petite fonction js. Ce n'est pas ce qu'il y a de plus beau, et son objectif n'est pas très important, mais plutot le comportement.
Voici la fonction:
function Lien() {
	
	i = document.getElementById("Liste1").selectedIndex;
	if (i == 0) return;
	urli = document.getElementById("Liste1").options[i].value;

	j = document.getElementById("Liste2").selectedIndex;
	if (j == 0) return;
	urlj = document.getElementById("Liste2").options[j].value;

	k = document.getElementById("Liste3").selectedIndex;
	if (k == 0) return;
	urlk = document.getElementById("Liste3").options[k].value;

	l = document.getElementById("Liste4").selectedIndex;
	if (l == 0) return;
	urll = document.getElementById("Liste4").options[l].value;

	m = document.getElementById("Liste5").selectedIndex;
	if (m == 0) return;
	urlm = document.getElementById("Liste5").options[m].value;

	n = document.getElementById("Liste6").selectedIndex;
	if (n == 0) return;
	urln = document.getElementById("Liste6").options[n].value;

	o = document.getElementById("Liste7").selectedIndex;
	if (o == 0) return;
	urlo = document.getElementById("Liste7").options[o].value;

	p = document.getElementById("Liste8").selectedIndex;
	if (p == 0) return;
	urlp = document.getElementById("Liste8").options[p].value;

	q = document.getElementById("Liste9").selectedIndex;
	if (q == 0) return;
	urlq = document.getElementById("Liste9").options[q].value;

}

Mon pb: si je mets
var toto = "xxx";
alert(toto);
Au début de mon code, juste après function Lien() {, le alert fonctionne.
Si je mets le même bout de code à la fin, juste avant "}", le alert ne fonctionne pas.

Pourtant, firefox ne m'affiche aucune erreur. Je me demande donc pourquoi mon alert marche quand il est placé au début, mais pas à la fin de la fonction.

Merci pour vos réponses.