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

PHP & Base de données Discussion :

récupération valeur input


Sujet :

PHP & Base de données

  1. #1
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut récupération valeur input
    Bonjour,

    Je n'arrive pas a récupérer dans une page php une variable, voici la page :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $nomHost = $_POST['host'] ;
    echo $nomHost;

    Et voici mon formulaire :

    Code php : 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
     
    <form action="supprimerMachine.php" method="post">
    ...
    	<?php 
    								while ($arraySQLAll = mysql_fetch_array($resultatRequeteAllComputer)){
     
    									echo "<tr>
    											<td>".$arraySQLAll['host']."</td>
    									<td>".$arraySQLAll['MaxProcessTotal']."</td>
    									<td>".$arraySQLAll['MaxProcessPerComputer']."</td>
    									<td>".$arraySQLAll['StopALL']."</td>
    									<td><input type='submit' value='Supprimer machine ".$arraySQLAll['host']."' /><input type='hidden' name='host' value='".$arraySQLAll['host']."' /></td>
    									</tr>";
     
    								}
    								mysql_close();
    							?>
    						</table>
    				</fieldset>
    			</form>

    Quand j'arrive sur la page php, je n'obtiens pas la valeur que je devrais, pourquoi ?

    Par avance, merci.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Tu n'obtiens pas la valeur que tu voudrais, donc une autre, ou rien ?

    NB: Fait plutot comme ça pour le echo avec les guillemets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    echo '<tr>
    <td>'.$arraySQLAll['host'].'</td>
    <td>'.$arraySQLAll['MaxProcessTotal'].'</td>
    <td>'.$arraySQLAll['MaxProcessPerComputer'].'</td>
    <td>'.$arraySQLAll['StopALL'].'</td>
    <td><input type="submit" value="Supprimer machine '.$arraySQLAll['host'].'" /><input type="hidden" name="host" value="'.$arraySQLAll['host'].'" /></td>
    </tr>';
    Bien cordialement

  3. #3
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    j'obtiens bien un nom de machine, mais toujours le même, celui de la dernière ligne de mon tableau. C'est ça qui est bizarre.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Ca me parrait logique à la vue de ton code.
    Ta boucle while prends tout les resultats et les met dans la valeur que tu passe en post. Donc elle vaut la derniere.

    Tu les veux tous, ou un seul en particulier ?

    Une seule valeur : Il faut que tu fasse un lorsque tu es sur la valeur que tu désire.
    Toutes les valeurs : Il faut les placer dans un tableau du style avec un indice que tu incrémente à chaque passage de la boucle. Puis tu transmet le tableau en post.

    Bien cordialement.

  5. #5
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    je veux un seul element en particulier.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    J'ai édité en même temps que ta réponse, je m'en excuse :p

  7. #7
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Citation Envoyé par ptilemare Voir le message
    Ca me parrait logique à la vue de ton code.
    Ta boucle while prends tout les resultats et les met dans la valeur que tu passe en post. Donc elle vaut la derniere.

    Tu les veux tous, ou un seul en particulier ?

    Une seule valeur : Il faut que tu fasse un lorsque tu es sur la valeur que tu désire.
    Toutes les valeurs : Il faut les placer dans un tableau du style avec un indice que tu incrémente à chaque passage de la boucle. Puis tu transmet le tableau en post.

    Bien cordialement.
    humm... ok, mais je sais pas comment faire exactement.

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    j'obtiens bien un nom de machine, mais toujours le même, celui de la dernière ligne de mon tableau. C'est ça qui est bizarre.
    C'est normal, car tu crée 1 seul formulaire, et dedans tu fait une boucle.
    Du coup, il va avoir autant de contrôles que ça boucle, et entre autre autant de champs cachés portant tous le même nom (host), mais avec des valeurs différentes.

    Un formulaire renvoie tous les éléments qui le contient (fais un print_r($_POST) pour le vérifier).
    Du coup, il ne peu pas avoir 2 éléments portant le même nom (disons qu'il ne faut pas), sinon le navigateur est déboussolé, et renverra qu'1 seul, le dernier en général.

    Donc inclus le formulaire dans la boucle, donne lui un nom unique, et théoriquement ça devrait aller.
    (tu peux tout mettre dans la cellule, dans le <td></td>).

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Algorithmiquement parlant :

    SI la valeur en cours = Celle que tu désire
    Fin while
    SINON
    on continue

    Donc ça donne :

    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
     
    <form action="supprimerMachine.php" method="post">
    ...
    <?php 
    while ($arraySQLAll = mysql_fetch_array($resultatRequeteAllComputer))
    {
       echo '<tr>
       <td>'.$arraySQLAll['host'].'</td>
       <td>'.$arraySQLAll['MaxProcessTotal'].'</td>
       <td>'.$arraySQLAll['MaxProcessPerComputer'].'</td>
       <td>'.$arraySQLAll['StopALL'].'</td>
       <td><input type="submit" value="Supprimer machine '.$arraySQLAll['host'].'" /><input type="hidden" name="host" value="'.$arraySQLAll['host'].'" /></td>
       </tr>';
     
       if($arraySQLAll['host'] == 'lamachinequetuveux')
       break;
    }
     
    mysql_close();
    ?>
    </table>
    </fieldset>
    </form>
    D'un point de vue legereté, c'est pas parfait car tu envoie quand meme toute les valeurs précédentes à celle que tu désire.
    Il faudrait que tu parcoure deja ta boucle avant le formulaire, et que tu crée le formulaire ensuite, pour envoyer la valeur trouvée

    Bien cordialement.

  10. #10
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if($arraySQLAll['host'] == 'lamachinequetuveux')
       break;
    @ptilemare
    A quoi sert cette condition ?
    Il va avoir un phénomène hasardeux normalement.
    Si le "host" correspond au 1er élément, alors les autres ne seront jamais affichés.
    Et s'il correspond au dernier (ou un au milieu) ceux là seront affichés, et pas les autres.
    Déroutant comme comportement, non ?
    De plus, persistera le problème qu'il ne faut pas créer 2 éléments portant le même nom dans un formulaire.


    Il y a un truc qu'il faut éclaircir.
    Soit on ne sait pas encore lequel qu'il faut afficher parmis d'autres, alors faut tout afficher, sans exception.
    Soit on sais à l'avance lequel afficher, alors on affiche uniquement celui-ci (vu qu'il est connu), donc pas besoin de boucle.
    A la limite, on recherche son nom dans une Bdd, mais 1 seul (pas de boucle).

  11. #11
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2009
    Messages : 186
    Points : 206
    Points
    206
    Par défaut
    Il est vrai qu'il serait plus logique de faire une condition dans la requete sur la base de données qui renverrai un seul élément.

    Sinon :

    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
     
    <?php 
    while ($arraySQLAll = mysql_fetch_array($resultatRequeteAllComputer))
    {
       if($arraySQLAll['host'] == 'lamachinequetuveux')
       {
       $host = $arraySQLAll['host'];
       $maxprocesstotal = $arraySQLAll['MaxProcessTotal']
       $maxprocesscomputer = $arraySQLAll['MaxProcessPerComputer'];
       $stopall = $arraySQLAll['StopALL'];
       break;
       }
    }
     
    mysql_close();
    ?>
     
    <form action="supprimerMachine.php" method="post">
    ...
    <?
      echo '<tr>
       <td>'.$host.'</td>
       <td>'.$maxprocesstotal.'</td>
       <td>'.$maxprocesscomputer.'</td>
       <td>'.$stopall.'</td>
       <td><input type="submit" value="Supprimer machine '.$host.'" /><input type="hidden" name="host" value="'.$host.'" /></td>
       </tr>';
     ?>
    </table>
    </fieldset>
    </form>
    Quelque chose dans ce style, non?

  12. #12
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Il est vrai qu'il serait plus logique de faire une condition dans la requete sur la base de données qui renverrai un seul élément.
    Ben oui.

    Mais faut kOrt3x nous dise un peu plus dans cette affaire.
    On ne sait pas, on suppose.

Discussions similaires

  1. Récupération valeur Input.
    Par spawn974 dans le forum VBScript
    Réponses: 4
    Dernier message: 26/06/2013, 22h30
  2. Récupération valeur input
    Par Belokanfr dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/07/2011, 14h38
  3. Récupération valeur Input dans une URL
    Par kilian dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/07/2009, 18h18
  4. Récupération de valeur input et enregistrement auto quand deselectionné
    Par Lexarino dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/09/2008, 11h17
  5. Réponses: 9
    Dernier message: 14/08/2007, 09h05

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