executer des fonction a l'affichage de la page

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 : executer des fonction a l'affichage de la page

par Monnier » 28 mai 2006, 16:48

oki oki je vois un peu le principe merci :D

par Cyrano » 28 mai 2006, 10:02

Ben voilà : à partir de là, tu peux générer un tableau d'identifiants JavaScript. :)

par Monnier » 27 mai 2006, 11:51

humm pour avoir le nombre de ligne il suffit de faire appel a la fonction
$nb = mysql_num_rows($req);

Bon je vais cogiter ...

par Cyrano » 27 mai 2006, 11:47

Bon, si on regarde ton code, tu construis ta boucle en incrémentant une variable : comment pourrais-tu connaitre le nombre de lignes avant d'initialiser ta boucle while ?

Si tu trouves la réponse à cette question, tu auras presque résolu le problème parce que tu pourras alors générer un javascript qui initialisera un tableu d'éléments correspondant aux identifiants de tes éléments.

Par la suite, dans ta fonction, tu envoies en paramètre l'identifiant de l'élément avec "this.id" et le tableau généré. Dans ta fonction, tu auras alors à parcourir ce tableau et à inverser l'affichage/masquage selon que tu arrives sur l'élément choisi ou non.

Digère ça tranquillement, ça va venir. Tu as le temps, je dois déconnecter pour l'après-midi, si tu suis le raisonnement en restant logique, tu auras peut-être même trouvé tout seul ce soir ;)

par Invité » 27 mai 2006, 11:40

cho cho cho ^^
je seche .....
ps: C'est bien de toi que tu fais allusion dans ta signature dis moi lol

par Cyrano » 27 mai 2006, 11:36

Alors réfléchis quelques instants : tu as besoin d'avoir quelque part la liste des identifiants individuels des éléments à afficher/masquer mais tu ne les connais pas d'avance puisque ton contenu est généré dynamiquement en PHP.

Tu as ensuite besoin d'une fonction (une seule) à laquelle tu envoies en paramètre l'identifiant de l'élément à afficher et cette fonction doit pouvoir récupérer la liste des éléments à masquer lorsque tu en affiche un. Le plus simple serait de créer un tableau JavaScript qui pourrait être transmis à la fonction en même temps que le paramètre. Ce qui pose problème puisque dans ta boucle, une ligne n'est pas obligatoirement la dernière... il te faut donc avant d'initialiser la boucle connaître le nombre de lignes que tu vas construire...

Tu suis toujours ? Alors comment réaliser ça ?

par Invité » 27 mai 2006, 11:25

en faite je cherche a faire afficher des tableau dynamique juste en dessous du lien sur lekel on cliquerai...
Bon j'avoue jy connais pas grand chose en javascript ^^
Vu que chaque lien doit afficher un tableau particulier, il faut obligatoirement que le calque contenant le tableau ne porte pas le meme id, c tout se que j'ai compris ^^
Si ta quelque chose de simple a me proposer, sa pourrait m'enrichier 8)

par Cyrano » 27 mai 2006, 11:16

Un détail m'échappe un peu : en regardant de plus près ton code, je constate que tu crées en boucle des fonctions dynamiques : simplifie: ne crée qu'une seule fonction dans l'entête et dans ta boucle, envoie un appel vers la fonction avec un paramètre...

On dirait que tu veux gérer l'affichage ou le masquage de champs de formulaire : si ça doit se produire selon un évènement particulier, utilise un gestionnaire d'évènement directement dans ta balise de champ de formulaire en lui envoyant "this" en paramètre pour que ta fonction pointe sur le bon élément.

Est-ce que tu visualises sommairement cette formule ?

par Monnier » 27 mai 2006, 11:11

oui justement mais je sais pas faire la 2eme solution lol
C'est ce que je demande, comment on fait, moi je connais que le lancement de fonction avec body onload ...

par Cyrano » 27 mai 2006, 11:07

Ben justement, la seconde solution semble donc la plus appropriée : qu'est-ce qui t'empèche de lancer l'exécution après ? Dis-toi bien que quand le code arrive dans le navigateur, le JavaScript des fonction est déjà généré : donc une ligne d'exécution après ne peut que foncitonner normalement.

par Invité » 27 mai 2006, 11:01

oui j'y ai deja penser mais le pb c'est que mes fonction sont generer par php d'apres le contenu
while($resultat2= mysql_fetch_assoc($req2))
{
$nb=1+$nb;
echo '<script language="JavaScript" type="text/JavaScript">
function afficher_masquer'.$nb.'() 
{ 
   if (document.getElementById("chp_txt'.$nb.'").style.display == "none") 
   { 
      document.getElementById("chp_txt'.$nb.'").style.display = "block"; 
   } 
   else 
   { 
      document.getElementById("chp_txt'.$nb.'").style.display = "none"; 
   } 
}
</script>';

par Cyrano » 27 mai 2006, 10:46

Alors mets tes fonctions dans l'en-tête <head> de ta page et ton év`enement onload fonctionnera très bien.

Sinon, il faudra ajouter dans la partie <body> après les fonctions une ligne lançant l'exécution.

executer des fonction a l'affichage de la page

par Monnier » 27 mai 2006, 10:18

voila il faudrait que je lance des fonctions des le lancement de la page mais je sais pas comment faire... au debut je pensais lancer la fonction avec <body load=fonction> mais mes fonction sont crée apres la balise body...
Si quelqun a la solution :roll:
Merci !!