Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2977 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [RESOLU][JS]Transmettre une liste d'elements vers une autre page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU][JS]Transmettre une liste d'elements vers une autre page

n°678803
bazbaz
Posté le 20-03-2004 à 16:42:15  profilanswer
 

Salut, j'ai un probleme avec une liste. Le principe est simple, la liste a droite contient tout les films de ma BDD, celle de gauche est vide dans un premier temps et se remplis des films de la premiere liste qd l'utilisateur fais son choix. Les films sont donc "transmis d'une liste a l'autre. Mais voila, maintenant mon probleme est le suivant : comment transmettre ces films vers une autre page par le biais d'un post ? Et aussi, comment empecher l'utilisateur de valider son formulaire tant qu'il n'a selectionné aucun film ?
J'ai tenté avec document.modifier_film.liste2.options.selectedIndex==1, mais ca marche pas, aidez moi svp :F
Voici les 2 fonctions mises en cause :
 
 
 
function Controle_Film()
{
var annee = document.modifier_film.date.value;
 
if(
document.modifier_film.titre.value=='' ||
document.modifier_film.realisateur.value=='' ||
document.modifier_film.date.value=='' ||
document.modifier_film.genre.value=='' ||
document.modifier_film.duree.value=='' ||
document.modifier_film.nat.value=='' ||
document.modifier_film.liste2.options.selectedIndex==1 ||
document.modifier_film.synopsis.value=='')
{
alert('Un ou plusieurs champs obligatoires n\'ont pas été remplis');
document.modifier_film.titre.focus();
 }else if (isNaN(document.modifier_film.date.value) || annee.length != 4){
 alert('L\'année du film n\'est pas valide, verifiez qu\'elle comporte bien 4 chiffres.');
  }else if (isNaN(document.modifier_film.duree.value)){
  alert('La durée du film n\'est pas valide, verifiez qu\'elle est bien saisie en minutes');
  }else{
  document.modifier_film.submit();
  }
}
 
 
 
function Deplacer(l1,l2) {
 if (l1.options.selectedIndex>=0) {
  nouv_option=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
  l2.options[l2.options.length]=nouv_option;
  l1.options[l1.options.selectedIndex]=null;
 }else{
  alert("Aucun acteur sélectionné" );
 }
}
 
 
J'oubliais : les données sont de cette forme, la transmission des ID suffit.
 
<Option value="{DATA_ACTEUR.ID}">{DATA_ACTEUR.PRENOM}&nbsp;{DATA_ACTEUR.NOM}


Message édité par bazbaz le 24-04-2004 à 18:04:14
mood
Publicité
Posté le 20-03-2004 à 16:42:15  profilanswer
 

n°678951
bazbaz
Posté le 20-03-2004 à 19:18:33  profilanswer
 

Euh, s'il vous plait c'est vraiment important, si personne trouve ici ben je suis mal :/

n°680315
protoinou
Posté le 22-03-2004 à 16:07:38  profilanswer
 

Tu utilises du PHP derrière  ou pas ?

n°683571
bazbaz
Posté le 25-03-2004 à 10:43:27  profilanswer
 

ouais, php avec easyphp 1.7

n°706151
bazbaz
Posté le 22-04-2004 à 16:35:19  profilanswer
 

UP.
 
Je reformule mon problème : transmettre des variables provenant d'une liste javascript vers une page en PHP. Des idées ?

n°706159
dropsy
et bonne chance surtout...
Posté le 22-04-2004 à 16:43:21  profilanswer
 

pour le problème de savoir si un film est sélectionné ou pas, tu peux tester la valeur de l'attribut length de ton select.
 
pour passer ta liste, tu peux concaténer tous les liste2.options[].value dans un champs caché dont tu récupère la valeur sur l'autre page

n°706207
bazbaz
Posté le 22-04-2004 à 17:06:23  profilanswer
 

Le problème est que je ne sais pas faire tout cela, je comprends ton idée, mais au point de vue synthaxe/algo je dois dire que je patauge :/

n°706377
goodspirit
Posté le 22-04-2004 à 19:39:17  profilanswer
 

J'ai peut être une autre solution pour toi : en javascript, tu modifie l'url vers de la page de sortie du formulaire de facon a transmettre les variables par : url.com/nomdelapage.php?var1='1'&var2='2',...
Ainsi tu pourras tout simplement récupérer en PHP tes variables

n°706389
bazbaz
Posté le 22-04-2004 à 19:54:12  profilanswer
 

Je ne peut hélas pas faire cela car je transmet mes variables en POST et non pas en GET, à cause de la présence d'un champs biographie qui peut être long :)
 
Donc impossible d'appliquer ta méthode (qui est pas bête).

n°706435
kfman
Credo quia absurdum
Posté le 22-04-2004 à 21:16:49  profilanswer
 

On peut créer une variable d'environnement avec Javascript ?


---------------
"Nous allons reformater les français" © Nicolas Sarkozy
mood
Publicité
Posté le 22-04-2004 à 21:16:49  profilanswer
 

n°706474
goodspirit
Posté le 22-04-2004 à 22:37:18  profilanswer
 

Alors, cherchons une autre solution
J'en ai peut-être une qui s'avère un peu compliquée mais si tu es prêt à tout...
Dans ta première page, tu mets a la validation du formulaire les réponses dans un cookie.
Tu éssaye alors de les récupérer soit en PHP soit en javascript dans la seconde page
(Mais je ne sais pas s'il est possible de récupérer un cookie en PHP si celui ci a été déposé en JS).
Cette méthode est certes, très peu pratique mais c'est tout ce que je vois sur le moment, mais je vais y pensé un peu...

n°706510
dropsy
et bonne chance surtout...
Posté le 22-04-2004 à 23:00:37  profilanswer
 

euh, une boucle for pour parcourir son tableau et concaténer ses valeurs, ça me paraît pas la bout du monde :heink:
à la louche:

Code :
  1. for(i=0;i<liste.options.length;i++){
  2. var += '|'+liste.options[i].value;
  3. }


tu transmet var dans un champ caché et ça roule [:proy]
 
bon, la monde code doit pas fonction, parce que je connais pas les objets JS sur le bout des doigts, mais c'est l'idée qui compte :o
 
edit: question innocente: tu peux pas utiliser un select multiple pour ton problème au lieu de transférer le film d'une liste à l'autre?


Message édité par dropsy le 22-04-2004 à 23:02:18
n°706517
bazbaz
Posté le 22-04-2004 à 23:08:21  profilanswer
 

Disons que au début j'avais fais cela, mais il me fallait absolument 2 listes pour des questions ergonomiques car c'est aussi la page servant à modifier les films, donc liste 1 "acteurs concernés", liste 2 "acteurs dispos". Je vais tester la concaténation demain, je vous dirais ça :)

n°707263
bazbaz
Posté le 23-04-2004 à 15:40:02  profilanswer
 

Alors pour la concaténation, ca marche impec et je pense en effet que c'est la solution la plus simple et la plus efficace à mon problème. Néanmoins, j'ai encore une question (sans doute bête) :
 
<input type="hidden" name="acteurs" value=conc_acteurs()>
Evidement, ça ne marche pas. Comment lui faire comprendre de prendre la valeur retournée par ma fonction "conc_acteurs()" ? Et puis, vu que c'est écrit "en dur" en début de page, je sais pas si ca vas marcher :(
 
(oui, je suis nul, mais j'essaye de m'améliorer)
 
 

n°707269
dropsy
et bonne chance surtout...
Posté le 23-04-2004 à 15:46:16  profilanswer
 

tu fais un  
document.form.acteurs.value = conc_acteurs();
dans la fonction qui soumet ton formulaire ou dans l'événement onSubmit()

n°707791
bazbaz
Posté le 24-04-2004 à 18:04:58  profilanswer
 

Voilà, y'a tout qui marche :)
Un grand merçi à tous ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [RESOLU][JS]Transmettre une liste d'elements vers une autre page

 

Sujets relatifs
mise en page cssafficher une valeur par defaut dans une liste de selection
[résolu]pour chaque élement sélectionné de ma listbox fair...Tracker sur une page qui redirige : Comment ??
[résolu]ouverture fichier excel plus possible[Question] Socket (résolu)
[JSP+Oracle] Résolu - taille d'une table[Perl] probleme avec sub - subroutine [résolu -> howto inside]
[Debutant] envoyer une bitmap d'un serveur vers un client[CSS] mise en page !!RESOLU!!
Plus de sujets relatifs à : [RESOLU][JS]Transmettre une liste d'elements vers une autre page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR