Notice Index : je n'arrive pas à résoudre le probleme

Notice Index : je n'arrive pas à résoudre le probleme - HTML/CSS - Programmation

Marsh Posté le 12-12-2009 à 19:17:16    

Bonjour à tous :)
 
Je suis débutant dans les langages du WEB, et suis un étudiant ayant pris une option pour apprendre à créer des site web. Bref,  
 
- je dois rendre un travail dont le [U]but:  Transmettre les données d'un formulaire (coté client) à un script PHP ( coté serveur).[/U]
- Petite précision, [B]les valeurs du formulaire doivent être traitées par JavaScript[/B]
 
J'ai mon formulaire (créer en HTML), avec ma fonction sortie() qui à récupé les valeurs.
 

Code :
  1. function sortie(nom,sexe,commentaires) {
  2. var nom,sexe,commentaires;
  3. var windows,linux,systeme_expl;
  4. var logiciels,msoffice,openoffice,ftpexpert,fillezilla;
  5. //INITIALISATION DES VARIABLES
  6. windows = '';
  7. linux = '';
  8. msoffice = '';
  9. openoffice = '';
  10. ftpexpert = '';
  11. fillezilla = '';
  12.     //TRAITEMENT - POUR LES CASES A COCHER WINDOWS ET LINUX
  13.    
  14.     if (document.f1.os1.checked == true && document.f1.os2.checked == true){
  15.       systeme_expl = 'Utilise les 2 systèmes, Windows et Linux, en dual Boot je suppose ! !';
  16.     }
  17.     else if (document.f1.os1.checked == true && document.f1.os2.checked == false){
  18.       windows = 'Utilise Windows';
  19.       systeme_expl = windows + linux ;
  20.     }
  21.     else if (document.f1.os1.checked == false && document.f1.os2.checked == true){
  22.       linux = 'Utilise Linux';
  23.       systeme_expl = windows + linux ;
  24.     }
  25.     else if (document.f1.os1.checked == false && document.f1.os2.checked == false){
  26.       systeme_expl = 'Utilise aucuns des 2 systèmes...Avez-vous un MAC ??!!' ;
  27.     }
  28.    
  29. //TRAITEMENT - POUR LE MENU DEROULANT LOGICIEL
  30. if(document.forms[0].logs.options[0].selected == true){
  31.  msoffice = 'Utilise MS Office';
  32. }
  33. if(document.forms[0].logs.options[1].selected == true){
  34.  openoffice = 'Utilise Open Office';
  35. }
  36. if(document.forms[0].logs.options[2].selected == true){
  37.  ftpexpert = 'Utilise FT Expert';
  38. }
  39. if(document.forms[0].logs.options[3].selected == true){
  40.  fillezilla = 'Utilise Fillezilla';
  41. }
  42. logiciels = msoffice + openoffice + ftpexpert + fillezilla;
  43. //ENVOIS DES VARIABLES VERS PAGE PHP
  44. windows.open('resultat.php');
  45. return false;
  46. }


 
 
Je ne sais pas si tout est juste, mais en faisant des alertes de chaque variables (donc au final j'en ai 5 , nom, sexe, systeme_expl, logiciels, commentaires), cela s'affiche normalement.
 
- Je dois les envoyées sur une autre page 'resultat.php', donc dans mon formulaire j'ai mis : (NB : je dois obligatoirement utiliser method POST)
 

Code :
  1. <form name="f1" method=post onSubmit="return(sortie(f1.nom.value,f1.sexe.value,f1.commentaires.value))" action="resultat.php">


 
 
- Ma page 'resultat.php' est comme ceci :
 

Code :
  1. <?php
  2. echo $_POST['nom']; 
  3. echo $_POST['sexe'];
  4. echo $_POST['systme_expl'];
  5. echo $_POST['logiciels'];
  6. echo $_POST['commentaires'];
  7. ?>


 
 
- PROBLEME : les varibles 'nom' 'sexe' 'commantaires' s'affichent correctement, mais PAS 'systeme_expl' et 'logiciels' soient les 2 variables avec lesquelles j'ai fait des opérations (parce que checkbok, et <select> à choix multiple).
 
- Pour ces variables, j'ai le droit à  
 

Code :
  1. Notice: Undefined index: systme_expl in C:\wamp\www\resultat.php on line 4
  2. Notice: Undefined index: logiciels in C:\wamp\www\resultat.php on line 5

 
 
=================================================
 
J'ai essayé des solutions genre :  
 

Code :
  1. // Avant d'utiliser $_POST['truc']
  2. if (isset($_POST['truc']))
  3. {
  4.           // Instructions si $_POST['truc'] existe
  5. }


 
Mais rien n'y fais, quand je fais ca par exemple, rien ne s'affiche.
 
 
==============================================
 
Je vous demande donc de me donner un petit coup de pouce pour un débutant comme moi et vous souhaite à tous une très bonne journée :):)
 
Merci, cordialement.

Reply

Marsh Posté le 12-12-2009 à 19:17:16   

Reply

Marsh Posté le 12-12-2009 à 22:55:43    

tes variables sont définies dans le javascript, sont locales à la fonction mais non exportées avec le formulaire...
 
suggestion : fais un champ input type="hidden" id="systeme_exploitation"> et une fois que tu as cette variable en javascript, tu fais un document.getElementById('systeme_exploitation').value=syst_expl;
 
de façon à remplir ce champ caché avant la soummission du formulaire.
 
 
après, tu peux aussi faire dans ton php

Code :
  1. echo '<pre>'; print_r($_POST); echo '</pre>';


qui te donnera tout le contenu récupéré, sans avoir à faire un "echo" manuel de chaque variable.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 13-12-2009 à 10:11:01    

Merci beaucoup pour ta réponse  :)  
 
Mais je n'ai pas compris ou est ce qu'il faut que je mette mon input type="hidden" ?
 
Est ce que je peut toujours mettre ça pour traiter systeme_expl ? :
 

Code :
  1. //TRAITEMENT - POUR LES CASES A COCHER WINDOWS ET LINUX
  2. #   
  3. #     if (document.f1.os1.checked == true && document.f1.os2.checked == true){
  4. #       systeme_expl = 'Utilise les 2 systèmes, Windows et Linux, en dual Boot je suppose ! !';
  5. #     }
  6. #     else if (document.f1.os1.checked == true && document.f1.os2.checked == false){
  7. #       windows = 'Utilise Windows';
  8. #       systeme_expl = windows + linux ;
  9. #     }
  10. #     else if (document.f1.os1.checked == false && document.f1.os2.checked == true){
  11. #       linux = 'Utilise Linux';
  12. #       systeme_expl = windows + linux ;
  13. #     }
  14. #     else if (document.f1.os1.checked == false && document.f1.os2.checked == false){
  15. #       systeme_expl = 'Utilise aucuns des 2 systèmes...Avez-vous un MAC ??!!' ;
  16. #     }


 
 
je le met ou ca : document.getElementById('systeme_exploitation').value=syst_expl;  ?
 
 
 
 
Merci a tous pour vos réponses, super forum, bonne journée a tous  :)  cordialement

Reply

Marsh Posté le 14-12-2009 à 19:10:27    

personne ne sait ? :)
 
Cordialement, j'ai fais 20 manips différentes rien n'y fais :(
 
Merci a tous bonne soirée :)

Reply

Marsh Posté le 30-12-2009 à 16:12:38    

Partout dans le document tu peux mettre ceci, comme de toute façon tu lui affecteras une valeur pas besoin de l'initialiser avec quelque chose, mais n'empêche met quelque chose pour le debug, "pas encore" par exemple
 

Code :
  1. <input type="hidden" id="systme_expl" value="pas encore" />


 
pour affecter une valeur

Code :
  1. document.getElementById('system_expl').value = "Utilise Linux";


 
Et tout devrait y aller mieux :)


Message édité par Nethacker le 30-12-2009 à 16:18:17
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed