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 :

Champ texte saisie sans redirection


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut Champ texte saisie sans redirection
    Bonjour,

    Je me recompte d'un problême, dans mon formulaire au niveau du champ texte, lorsque un utilisateur tape une saisie et laisse le curseur clignoter dans le champ et appuie sur la touche entrée du clavier, cela m'enregistre la modification, mais ne le redirige pas comme le fait mon bouton submit lorsque l'ont clique dessus.

    Formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <td><form action="" method="post"> 
    <input type="hidden" name="id" value="<?php echo $id ?>"</td> 
    </tr> 
    <tr> 
    <td>Nom : </td> 
    <td><input type="text" name="nom" value="<?php echo $nom ?>" size="4" maxlength="7" /></td> 
    </tr> 
    <tr> 
    <td colspan="2" align="center"><input type="submit" name="envoyer-nom-modifier" value="Modifier" /></td> 
    </tr>
    Redirection du bouton submit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(isset($_POST['envoyer-nom-modifier'] )) 
    { 
    echo '<meta http-equiv="refresh" content="0;url=x10-bouton-mysql-Modifier-8.php;">'; 
    echo '<div align="center"><p> VEUILLEZ PATIENTER REDIRECTION </p></div>'; 
    } 
    echo ''; 
    { 
    }
    Comment puis je faire pour que la redirection ce fasse aussi depuis le champs de saissie lorsqu'un utilisateur appuie sur la touche entrée.

    Merci.

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Fais plutot ton test comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Bonsoir,

    Mais sa ne change rien.

    Merci

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Que vaut $_SERVER['REQUEST_METHOD'] dans ton cas qui ne marche pas ?
    Avec quel navigateur as-tu ce problème ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Je ne vois pas ou vous voulez en venir avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
    Je sais que $_SERVER["REQUEST_METHOD"] et à utiliser par GET ,POST afin de vérifier les variable provenant d' un formulaire .

    Je ne voie pas comment l'utilsé je suis encore jeuno dans le domaine.

    En deux mot, le probleme c'est que je doit faire une redirection, après validation du formulaire, qui a récuperè des $variables, mais du faite que les variables recupèrè s'éfface lorsque le formaile et modifier une deuxieme fois, j'ai donc fait une redirection sur le bouton submit en paralelle au bouton de validation du formulaire

    Recupèration de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $bouton = $_POST['valider'];
    		  if(!empty($bouton)) { 
    		  $id = trim($_POST['id']);
    		   $nom = trim($_POST['nom']); 
    		   if(!empty($id) && !empty($nom)) { 
                                 echo 'test si la variable et recupéré, '.$id.' '.$nom;
    		   } 
    		   else 
    		   { 
    		   echo 'vous n\'avez pas rempli le champ';
    		    }
    			}
    Merci.

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    il sort d'ou ce code ? ce n'est plus du tout le même.

    Sur quel navigateur rencontres-tu le problème ? j'ai fais le test avec firefox, on recoit la meme chose qu'on appuie sur un submit ou qu'on fasse entrée dans un champ.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Re,

    J' utilise IE 7, mais pas pour moi sais diferent avec la touche entrée.

    A moins qu'il y est une erreur dans mon code en general à IE7.

    Tout le 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    <?php  
    /* ------------------ Connexion a la BDD avec login.php ------------------ */
    require ('login.php');
    $link = mysql_connect("$hote", "$login", "$pass") or die("Erreur de connexion...") ;
    $req = mysql_select_db($bdd, $link) or die("Erreur de connexion...") ;
    ?>
     
    <?php   
    /* ------------------ CONFIGURATIO DIVERSES ------------------ */
    $nom_table = ("modules_x10");
    $titre = "modification du nom de commande" ;
    $message1 = "Vos informations ont été correctement modifier à la ligne" ;
    $message2 = "Modification enregistré du champs Nom module : ";
    $message3 = " ! " ;
    $url_bouton_retour = "x10-bouton-mysql-Modifier-8.php";
    $titre = "modification du nom de commande" ;
    $message1 = "Vos informations ont été correctement modifier à la ligne" ;
    $message2 = "Modification enregistré du champs Nom module : ";
    $message3 = " ! " ;
    $message4 = "Attention : Veuillez tapez votre saisie dans le champs,si celui-ci est faut, sinon veuillez cliquer sur retour, vous noterez qu'un champ vide valider restera vide, afin de l'éffacer. ";
    $message5 = " Veuilllez modifier votre saisie ci dessous si elle est fausse de : ";
    $message6 = " VEUILLEZ PATIENTER REDIRECTION ";
    ?>
     
    <?php 
    /* ------------------ REDIRECTION URL PAR BOUTON SUBMIT ------------------ */
    if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {  
    { 
    echo '<meta http-equiv="refresh" content="0;url=x10-bouton-mysql-Modifier-8.php;">'; 
    echo '<div align="center"><p> '.$message6.' </p></div>';
    } 
    echo ''; 
    {
    }
    ?> 
     
    <?php 
    /* ------------------ A PARTIR D'ICI RECUPRERATION DE LA VARIABLE : ENVOYER-NOM-MODULE ------------------ */
     
     
    		  $bouton = $_POST['valider'];
    		  if(!empty($bouton)) { 
    		  $id = trim($_POST['id']);
    		   $nom = trim($_POST['nom']); 
    		   if(!empty($id) && !empty($nom)) { 
    		   echo 'test si la variable et recupéré, '.$id.' '.$nom; 
    		   } 
    		   else 
    		   { 
    		   echo 'vous n\'avez pas rempli tous  les champs';
    		    }
    			}
    ?>
     
    <?php 
    /* ------------------ A PARTIR D'ICI COMMANDE DU BOUTON : ENVOYER-NOM  ------------------ */
     
     
            $numero_id = mysql_real_escape_string(htmlspecialchars($_POST['id']));
    		$nom_bouton_on = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
     
    		  $query2 = mysql_query(" UPDATE $nom_table SET nom_commande_On ='$nom_bouton_on' WHERE id='$numero_id' ") or die ("erreur la modification de la table n'a pas put être effectuée pour catégorie");
     
    if($query2) {
    echo '<div align="center"><font face="arial" size="4" color="red">'.$message1.' '.$numero_id.'.  <p>'.$message2.' '.$nom_bouton_on.' '.$message3.' </p></font></div> '; 
    } else { 
    		   echo '<div align="center"><font face="arial" size="4" color="red">'.$message1.' '.$numero_id.'.  <p>'.$message2.' '.$nom_module.' '.$message3.' </p><p> VEUILLEZ PATIENTER REDIRECTION </p></font></div> '; 
    }
    ?>
     <?php
    /* ------------------ LECTURE TABLE ------------------ */
    $reponse = mysql_query("SELECT * FROM $nom_table WHERE id='$numero_id' "); // Requête SQL
    $reponse1 = mysql_query("SELECT * FROM $nom_table WHERE id='$numero_id' "); // Requête SQL
    ?>
     
        <p align="center">Titre :  <?php echo $titre ; ?>
          <!--Début formulaire Lecture -->
     
     
    <div align="center">
      <table width="auto" border="0">
        <tr>
          <th width="auto" bgcolor="#999999" scope="col">Id</th>
            <th width="auto" bgcolor="#999999" scope="col">Nom de la commande</th>
            <th width="auto" bgcolor="#999999" scope="col">C.M.U</th>
            <th width="auto" bgcolor="#999999" scope="col">On</th>
        </tr>
        <tr>
          <th scope="row">&nbsp;</th>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <?php
    while($donnees = mysql_fetch_array($reponse) ) // boucle pour lister tout ce que contient la table : Alimentaire
    {
    ?>
        <tr>
          <th bgcolor="#CCCCCC" scope="row"><?php echo $donnees["id"]; ?></th>
            <td bgcolor="#CCCCCC"><?php echo $donnees["nom_module"]; ?></td>
            <td bgcolor="#CCCCCC"><p align="left"><?php echo $donnees["code_maison_unité"]; ?></td>
            <td bgcolor="#CCCCCC"><?php echo $donnees["nom_commande_On"]; ?></td>
        </tr>
        <?php } //toute la ligne est comprise dans la boucle while ?>
      </table>
     
    </div>
     
        <p align="center">
    <?php while($donnees1 = mysql_fetch_array($reponse1) ) //boucle pour lister tout ce que contient la table : Alimentaire
    {?>
     
        <p align="center"><?php echo $message4 ?></p><p><div align="center"><?php echo $message5 ?> <?php echo $donnees1["nom_module"]; ?></p></div>
    	<?php }?>
     
    	<table align="center" border="0">
          <td>&nbsp;</td>
            <td><form action="" method="post"><input type="hidden" name="id" value="<?php echo $id ?>"</td>
          </tr>
          <tr>
            <td>Nom : </td>
            <td><input type="text" name="nom" value="<?php echo $nom ?>" size="4" maxlength="7" /></td>
          </tr>
          <tr>
            <td colspan="2" align="center"><input type="submit" name="envoyer-nom-modifier" value="Modifier"  /></td>
          </tr>
        </table>
    	<?php mysql_close($link); // déconnecte de MySQL ?>
    Merci

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai pas IE7 pour voir comment il se comporte ; tu devrais faire un test tout simple formulaire + contrôle de $_POST pour voir ce que tu as dans les deux cas (entrée ou submit)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Re,

    Non mais je croix que vous n'avez pas compris

    Sa marche sur Ie 7 lorsque le curseur est dans la champ et appuie sur la touche Entrée, cela enregistre bien les modifications d'accord jusque la, parcontre la redirection ne se fait pas alors qu'avec le submit les modification sont enregistré et la page est redirigé.

    La question est comment faire pour que l'utilisateur quand il fasse entrée dans un champ la redirection soit aussi pris en compte

    Pour moi la redirection n'est pas prise en compte dans le champ avec IE7.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(isset($_POST['envoyer-nom-modifier'] )) 
    { 
    echo '<meta http-equiv="refresh" content="0;url=x10-bouton-mysql-Modifier-8.php;">'; 
    echo '<div align="center"><p> VEUILLEZ PATIENTER REDIRECTION </p></div>'; 
    } 
    echo ''; 
    { 
    }
    Merci.

  10. #10
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que dans les deux cas tu vois le message "veullez patienter" ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Re,

    Je vient a l'instant même de faire un test sur le poste 7 avec Mozilla firebox version 3.5.5

    J'ai le message "veullez patienter" qui s'affiche, mais parcontre en erreur 404, idem si je clique sur le bouton submit.

    J'ai testé également toujours sur le même poste avec IE 8 , Aucun message s'affiche, pas de redirection avec le champ.

    Merci.

  12. #12
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu as une erreur 404, c'est que ta page de destination n'existe pas, y'a pas 10000 raisons.
    Fait nottament attention aux majuscules dans les noms de fichiers.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    Je suis tout a fait d'accord avec toi mais pourquoi elle existe pour IE 7 et 8 et pas du tout pour mozilla firebox 3.5.5 ????

    Merci

  14. #14
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as un point-virgule a la fin de ton nom de fichier.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Points : 79
    Points
    79
    Par défaut
    re,

    Effetivement il y avait un point virgule, tout fonctionne sous mozila firebox, mais sur ie 7 et 8 le redirection fonctionne avec le bouton submit, la redirection s'affiche, parcontre pas de redirection avec le champ avec la touche entrée, aucun message s'affiche.

    Merci

  16. #16
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    il faut faire le test que je t'ai proposé.

  17. #17
    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

    Ton problème est peut être lié à la construction du formulaire, d'un html peut être pas très conforme.
    D'ailleurs, je ne vois pas dans ton code où ce trouve la balise qui ferme le formulaire -> </form>. Le code n'est peut être pas complet ici.

    Je vois aussi une erreur, il manque la fermeture du champ caché :
    <input type="hidden" name="id" value="<?php echo $id ?>" -- manque ceci : /> --


    Essai d'adopter ce principe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form name="une_modif" action="nom_de_la_page.php" method="post">
    	<table>
    	<tr>
    		<td>... etc ...</td>
    	</tr>
    	</table>
    </form>
    Le formulaire englobe (si on peu dire) le tableau.
    Met y aussi le nom de la page (action) et un nom au formulaire. Ca mange pas d'pain, et on respecte mieux les choses.


    Concernant la redirection, pourquoi ne pas utiliser un header() au lieu d'une méta ?
    Faut savoir qu'on peux vérifier l'existence des données en POST (ou GET, etc ...) au tout début d'une page, et ça avant le moindre echo ou autre élément html (doctype, <html>) car c'est ce que tu reçois en 1er.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/07/2008, 11h00
  2. Focus sur champ de saisie sans JS
    Par parkerlewis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2007, 14h11
  3. afficher du texte dans le champ de saisie de type file
    Par MANU_2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 14h59
  4. [c#]Champs de saisie de texte
    Par Verboz dans le forum ASP.NET
    Réponses: 5
    Dernier message: 03/05/2005, 15h01
  5. saisi champs texte
    Par j2zetka dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/12/2004, 14h01

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