sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 2014
-
21 nov. 2007 à 23:03
sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 2014
-
22 nov. 2007 à 12:44
Salut tout le monde,
vu le faible nombre de personne ayant lu ma précedente missive (comparée aux questions postérieures), je la réecrit en changeant le titre du sujet.
Bonjour à tous,
j'ai un petit soucis dans la réalisation d'un projet.
Je vous fais le topo vite fait:
Ma page web se divise en 2 frames, celle de gauche étant le menu et l'autre une page vierge sur laquelle j'essai de créer un tableau à la volée grâce aux infos transmis via la frame droite. Je construit donc le tableau via la fonction suivante:
window.parent.frame_droite.open(); window.parent.frame_droite.document.writeln(" bla bla bla"); etc...
window.parent.frame_droite.close();
Tout fonctionne et j'arrive exactement à ce que je désirai.
Cependant, j'ai décidé de l'améliorer et c'est là que le bas blesse. En effet, je veux désormais pouvoir rendre accessible ce projet en permettant à tout un chacun de pouvoir inscrire ce qu'il désirait dans les cellules.
Voilà ce dont je veux me servir: (pour faire court, le tableau ne contiendra qu'une ligne)
<form name= hari>
Combien de colonnes votre tableau contient-il?
[# Comment voulez-vous les nommer:]
<SCRIPT>
var tnt="";
var no=hari.nb_col.value;
for(i=1;i<no;i++){
tnt+="La colonne "+i+":
Et mon pb est que la variable no vaut forcément null, car chargé au début le input type correspondant est vide donc la valeur nulle. Pas la peine d'être devin pour comprendre que rien ne s'affiche lorsque j'affiche la div "titre_col", la boucle ne démarrant pas.
Ma question est donc celle-ci:
j'ai 2 idées:
1) J'ai l'idée qu' AJAX pourrais m'aider ? Je chauffe ou gèle carrément sur place ?
Si oui, n'y connaissant rien du tout (y a 4 mois j'y connaissais rien en javascript aussi), quelqu'un pourrait d'une m'indiquer un bon tutoriel, et de deux me filer un code qui permettrait d'obtenir ce que je veux: c'est à dire que la valeur de no soit généré en fonction de ce qui est inscrit dans le input (en fait rien ne change dans la frame de gauche excépté la div cachée)
2) L'autre, plus en mode système D: après avoir rempli le nombre de colonnes voulu,
recharger la page en donnant une valeur par défaut à l'input type correspondant. Ainsi la variable no vaudra cette fois bien ce que je veux. Mais cela est-il possible ? (ex: clic sur un lien qui recharge la même url sur la même target, la frame gauche, en transmettant par la barre d'adresse la valeur de no , du style => mon url'hari.nb_colmenu=4 ), je pense que cela est faisable, mais peut être un peu trop gadgetoonesque par rapport à ce que je veux faire (surtout qu'il est possible que cela se fasse plusieurs fois et donnerai donc une url à rallonge)
Bref, si quelqu'un peut m'éclairer, je suis de suite preneur.
Merci d'avance.
A bientôt.
J'espère.
;-)
PS: avec ce titre de sujet, allez-vous être plus nombreux à me lire ??
J'en prend le pari.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 nov. 2007 à 11:50
Bonjour,
pas sûr du tout d'avoir compris ton problème...???...
il semble que tu veuilles générer des colonnes en fonction
de ce que demande l'utilisateur ? l'ai-je bien compris ?
si oui, il faut attendre que l'utilisateur remplisse le nombre
de colonnes et valide cette saisie ? non ?
( là tu le fais d'entrée, sans que l'utilisateur ne saisisse
quoi que ce soit )
et tu déclenches la création des colonnes sur le onclick du
bouton qui valide la saisie.
tant qu'à AJAX, c'est communiquer entre JavaScript
sur le micro et PHP sur le serveur... je ne vois pas
bien le rapport...
sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 20141 22 nov. 2007 à 12:29
Merci bultez,
ta judicieuse remarque a été comme une révélation, et m'as fait voir le pb autrement.
Voilà donc les modifications que j'ai apporté à mon code:
L'utilsateur précise d'abord le nb de colonnes qu'il souhaite, et je le créé sur la frame de gauche en mettant des valeurs par défaut aux cellules (ex: cellule1,2,...).
Puis je transmets à la frame de gauche le nb de colone à un input type caché:
.
Je fais cela via :
rajouté grâce à window.parent.frame_droite.document.writeln(" bla bla");
et
function faire_savoir(){
window.parent.frame_gauche.hari.savoir_nb_col.value=window.parent.frame_gauche.hari.nb_col.value;
}
puis après cela, je fais apparaître la div cachée par le clic sur le lien de la frame de gauche.
Ce qui me donne ce que je recherchais.
Tout simplement !!
;-)
sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 20141 22 nov. 2007 à 12:33
J'avais oublié:
le script qui rempli la div caché se trouve désormais dans l'entête, et non plus dans le body du document,
et le clic sur lien le fait 1) s'executer, et 2 le montrer.
Il s'agit du même que précédemment sauf que no=hari.savoir_nb_col.value
Une idée: l'appel à l'input type caché est-il vraiment nécessaire ??
sagat06
Messages postés166Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention31 mars 20141 22 nov. 2007 à 12:44
Re,
je confirme bien: l'input type caché était inutile ainsi que la fonction faire_savoir().
Je peux ne rien transmettre du tout, vu que l'info se trouve déjà sur la frame de gauche.
Mon premier soucis était en fait que je remplissais le contenu de la div cachée au démarrage, ce qui donnait forcément une valeur nulle à la variable no (voir premier post du topic).
En appelant le script qui le remplit par le lien, tout va bien.