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 :

Récupération de données via $_POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut Récupération de données via $_POST
    Bonsoir
    je suis débutante en php.
    Quelqu'un d'entre vous peut surement m'aider.
    je créé un formulaire de saisie d'heures pour une liste d'activités ($donnees).
    Mais je n'arrive pas à garder la valeur saisie dans le champs heure
    Comble de tout, je veux faire une somme des heures saisies
    merci d'avance

    ci-dessous mon code
    Code : 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
     
    for ($i=0;$i<count($donnees);$i++)
    	{
    		$concat="A".$donnees[$i]['ste_code'].$PF.$donnees[$i]['oi_pf'].$donnees[$i]['oi_ae']."x"."01";
    		$array1[$i]=$_POST['heure'.$i];
    		?>
    		<tr>
    		<td id="ligne"><?php echo $donnees[$i]['oi_lib'];?></td>
    		<td id="ordre"><?php echo $concat;?></td>
    		<form method="post" action="#"/>
    		<td><input type="text" name="heure[$i]" id="nbh" value="<?php echo $_POST['heure'.$i]; if(empty($_POST['heure'.$i])){echo "vide";$array1[$i]=$_POST['heure'.$i];}?>"/>
     
    		</tr>
    		<?php
    	}
    		?>
    </table>
    </div>	
    <form method="post" action="#"/>
    <br/>
    <input type="submit" name="valider" value="valider"</>
    <?php
    if (isset($_POST['valider'])){
    for ($i=0;$i<count($donnees);$i++)
    {
    $sstot=$array1[$i]+$sstot;
    }
    echo $sstot;

  2. #2
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    il faut mettre les éléments dans la "form" :

    i.e
    <form><input></input></form>
    car
    <form/><input></input>
    est équivalent à
    <form></form><input></input>

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Prends l'habitude d'utiliser
    - foreach() pour parcourir tes tableaux
    - htmlspecialchars pour afficher des données recues d'un formulaire

    Sinon c'est $_POST['heure'][index] pas $_POST['heure'.index] puisque ton champ est en tableau name="heure[index]"

    Pour finir tu faire ton traitement de fin

    Code : 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
     
    foreach($donnees as $key=>$valeur) {
    	$concat="A".$valeur['ste_code'].$PF.$valeur['oi_pf'].$valeur['oi_ae']."x"."01";
    		$array1[$key]=$_POST['heure'][$key];
    		?>
    		<tr>
    		<td id="ligne"><?php echo $valeur['oi_lib'];?></td>
    		<td id="ordre"><?php echo htmlspecialchars($concat) ;?></td>
    		<form method="post" action="#"/>
    		<td><input type="text" name="heure[$key]" id="nbh" value="
    <?php 
    if (empty($_POST['heure][$key]))   {
            echo "vide";
            $array1[$key]=$_POST['heure'][$key];
        }
    else {
            echo htmlspecialchars($_POST['heure'][$key]);
    }
    ?>
    "/>
     
    		</tr>
    <?php
    }
    ?>
    </table>
    </div>	
    <form method="post" action="#"/>
    <br/>
    <input type="submit" name="valider" value="valider"</>
    <?php
     
    foreach ($donnees as $key=>$valeur)  {
       $sstot += $array1[$key];
    }
    echo $sstot;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut Le post ne fonctionne toujours
    Même souci
    quand je clique sur valider, les cellules sont remises à blancs, le nombre saisi ne reste pas affiché à l'écran et le total ne se fait pas.
    j'ai bien appliqué vos consignes
    ci-dessous code

    Code : 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
    $sstot=0;
     
    $array1=array();
    for ($i=0;$i<count($donnees);$i++)
    	{
    		$concat="A".$donnees[$i]['ste_code'].$PF.$donnees[$i]['oi_pf'].$donnees[$i]['oi_ae']."x"."01";
    		$array1[$i]=$_POST['heure'.$i];
    		?>
    		<tr>
    		<td id="ligne"><?php echo $donnees[$i]['oi_lib'];?></td>
    		<td id="ordre"><?php echo $concat;?></td>
    		<form method="post" action="#"/>
    		<td><input type="text" name="heure[$i]" id="nbh" value="<?php if(empty($_POST['heure'][$i])){echo "vide";$array1[$i]=$_POST['heure'][$i];}else {echo htmlspecialchars($_POST['heure'][$i]);}?>"/></input>
    		</form>
    		</tr>
    		<?php
    	}
    		?>
    </table>
    </div>	
    <form method="post" action="#"/>
    <br/>
    <input type="submit" name="valider" value="valider"</>
    <?php
    if (isset($_POST['valider'])){
    for ($i=0;$i<count($donnees);$i++)
    {
    $sstot=$array1[$i]+$sstot;
    }
    echo $sstot;
    print_r($array1);
    }

  5. #5
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    Si tu appuies sur valider, il vas garder en post que les inputs de la forme en question, comme input est pas dans form =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_POST['valider']))
    {
    }
    ne sera pas vérifié

    Autre chose, un id est unique pour chaque page => il vaudrait mieux remplacer l'id par classe. si count($donnees) est plus grand que 1.

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut ????????
    admettons qu'il ne garde pas la valeur Post
    Il devrait quand même stocker l'info saisie dans le tableau $array1.

    quand je valide, il ne fait pas la somme des heures saisies donc des heures stockées dans array1.

    je suis bloqué sur ce problème
    merci pour les bonnes volontés qui voudront se pencher dessus.

  7. #7
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    La somme dont tu parles elle se trouve pas la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($i=0;$i<count($donnees);$i++)
    {
    $sstot=$array1[$i]+$sstot;
    }
    ?

    Si c'est le cas, ben ce morceau de code ne vas pas ce faire si

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isset($_POST['valider']) == false
    ce qui est toujours le cas par ce que j'ai dis plus haut.

    si avant la condition tu mets :

    echo implode('<br>',$array1);

    est ce qu'il sort des valeurs ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupération de données via une liste déroulante
    Par Requiem11 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/04/2009, 12h18
  2. Réponses: 0
    Dernier message: 24/11/2008, 16h58
  3. Récupération de donnée via une interface
    Par Invité dans le forum Interfaces Graphiques
    Réponses: 9
    Dernier message: 10/01/2008, 14h32
  4. récupération de données via un selected
    Par Appli dans le forum Langage
    Réponses: 7
    Dernier message: 09/12/2006, 16h40
  5. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h27

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