IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Récupération de données


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut [PHP-JS] Récupération de données
    Bonjour à tous,

    J'ai un problème de récupération de données à partir d'un formulaire qui est écrit dans une balise div.
    le bouton submit se trouve dans une balise div dans la même page que le formulaire le code est le suivant:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <html>
    <HEAD>
    <TITLE>Zone Nationnale</TITLE>
    <link rel="stylesheet" type="text/css" href="z_nat.css">
    </HEAD>
    <div id="cadre1">
    <Form method="GET" action="z_select.php">
              <table  align=center>
                 <TR>
                     <TD>Num Zone</TD>
                     <TD>
                         <input type=texte name="num">                  
                     </TD>
                     <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                         </TD>   
                     <TD>Libelle Zone</TD> 
                     <TD>
                         <input type=texte name="libelle">                  
                     </TD>
                 </TR>
              </table>
    </form>
    </div>
    <div id="cadre2">
    partie2
    </div>
    <div id="cadre3">
    <table align=center>
     <TR>
            <TD>
                <FORM method="GET" action="z_select.php">
                    <input type=submit value=Selection>
                </FORM>
            </TD>
            <TD>
               <FORM method="GET" action="z_modif.htm">
                    <input type=submit value=Modification>
               </FORM>  
            </TD>
            <TD> 
               <FORM method="GET" action="z_suppr.htm">
                    <input type=submit value=Suppression>
               </FORM> 
            </TD>
            <TD>
               <FORM method="GET" action="z_insert.htm">
                    <input type=submit value=Insertion>
               </FORM>
            </TD>
     </TR>
    </table>
    </div>
    </html>

    puis le code php associé au bouton selection est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    if (($_GET['cadre1.num']=="")&&($_GET['cadre1.libelle']))
    echo "veillez entrer le numero et le libéllé de la zone";
    ?>

    Le problème est qu'au moment de l'exécution j'obtiens le message d'erreur suivant:
    Notice: Undefined index: cadre1.num in f:\localsite\sites\site1\z_select.php on line 2

    Notice: Undefined index: cadre1.libelle in f:\localsite\sites\site1\z_select.php on line 2
    Je ne sais pas est ce que c'est du à la balise div vu que c'est la premiere fois que je l'utilise...

    merci d'avance pour votre aide...

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bonjour,

    Je ne suis pas "certain" de ce que je vais dire, mais je pense que lorsque tu as deux formulaires distincts sur la meme pages html (deux <form>...</form>) quand tu utilises le bouton submit du deuxieme par exemple, seules les données concernant le deuxieme formulaire sont envoyées au script distant, tout le reste est ignoré.
    Il faut donc utiliser des noms uniques pour chaque champ à transmettre (input, liste déroulantes, etc) et les référencer par leur nom et pas par leur position dans un div particulier.
    Enfin dans ton cas il faut que tes boutons submit soient dans le meme formulaire que tes champs a transmettre.

    Du coup tu auras deux possibilités : soit tu as un script unique qui va faire tous les traitements (avec des if, pour savoir quel bouton a été pressé) soit il faut qu'en javascript tu changes l'action de ton formulaire (pour appeler le bon script en fonction du bouton pressé)

    J'espère avoir été a peu près clair

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    merci pour la réponse...
    mais j'ai pas bien compris, est ce que vous pouvez m'expliquer un peut plus:
    comment je peux savoir qu'un bouton est préssée? c'est en php ou en javascript?
    dans le cas ou je veux utiliser javascript est ce que je dois refaire le formulaire et les boutons submit tous dans le même page à savoir que j'ai besoin d'un espace entre le formulaire est les boutons pour afficher un tableau de données par la suite (à extraira d'une base)...

    je me sens vraiment perdue, je ne peux pas décider avec quelle langage je dois travailler...

    je serais vraiment reconnaisante si vous m'a

  4. #4
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 111
    Points : 49
    Points
    49
    Par défaut
    Merci pour votre réponse…

    Mais désolée j’ai pas bien compris, est ce que vous voulez dire que je dois tous refaire en javascript ?

    Comment je peux savoir quel bouton est pressé ?

    Je ne peux plus décider avec quel langage je dois travailler, si vous pouvez m’aider je serais vraiment reconnaissante…

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Alors déjà deux cours de developpez.com sur php et les formulaires:
    LEs formulaires et PHP5
    PHP et les formulaires

    Je ne sais pas comment sont faits vos autres scripts (ceux d'insertion, de suppression, etc.) Sont-ils longs? Parce qu'une solution serait de tout mettre dans le meme script comme je l'ai dit et de regarder au début quel bouton a été pressé.

    Votre formulaire sera plutot comme ca:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <html>
    	<HEAD>
    	<TITLE>Zone Nationnale</TITLE>
    	<link rel="stylesheet" type="text/css" href="z_nat.css">
    	</HEAD>
    	<BODY>
    		<FORM method="POST" action="nom_du_script.php">
    			<div id="cadre1">
    			  <table  align=center>
    			     <TR>
    			         <TD>Num Zone</TD>
    			         <TD>
    			             <input type=texte name="num">                  
    			         </TD>
    			         <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    			             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    			             </TD>   
    			         <TD>Libelle Zone</TD> 
    			         <TD>
    			             <input type=texte name="libelle">                  
    			         </TD>
    			     </TR>
    			  </table>
    			</div>
    			<div id="cadre2">
    				partie2
    			</div>
    			<div id="cadre3">
    			<table align=center>
    			 <TR>
    			        <TD>
    			                <input type=submit name="action" value=Selection>
    			        </TD>
    			        <TD>
    			                <input type=submit name="action" value=Modification>
    			        </TD>
    			        <TD> 
    			                <input type=submit name="action" value=Suppression>
    			        </TD>
    			        <TD>
    			                <input type=submit name="action" value=Insertion>
    			        </TD>
    			 </TR>
    			</table>
    			</div>
    		</FORM>
    	</BODY>
    </html>

    Maintenant il faut faire un fichier php qui va contenir tous les traitements à faire, selon le bouton qui a été pressé!
    Deux choses :
    1/ changer dans la balise form le champ action="" en mettant le bon nom de script
    2/ attention j'ai passé la méthode du formulaire en POST au lieu de GET (voir les formulaires pour plus d'explications)

    Maintenant il va falloir récupérer les valeurs entrées par l'utilisateur (dans le fichier php créé)

    Pour connaitre le bouton pressé il faut utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bouton = $_POST['action'];
    pour connaitre le champ num saisi par l'utilisateur il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bouton = $_POST['num'];
    Ensuite dans ce script il faut faire en fonction de la valeur de $bouton le code souhaité (affichage, insertion dans une base de données, etc.)

    J'espère avoir été assez clair! Prenez bien le temps de lire les deux tutoriels pour comprendre!

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/07/2014, 17h07
  2. Réponses: 5
    Dernier message: 21/02/2011, 14h12
  3. PHP-> PDF : récupération de données. problème
    Par rastignac dans le forum Windows
    Réponses: 2
    Dernier message: 10/04/2008, 13h50
  4. Réponses: 1
    Dernier message: 16/08/2007, 18h04
  5. Réponses: 6
    Dernier message: 12/08/2007, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo