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

jQuery Discussion :

Modifier la valeur d'un input dans un formulaire


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut Modifier la valeur d'un input dans un formulaire
    Bonjour,

    Je galère depuis un moment

    J'ai une série de formulaires:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="index.php" method="post" class="booster">
        <input type="hidden" name="mode" value="booster">
        <input type="hidden" name="matchid" value="1">
        <input type="hidden" name="booster" value="true">
        <input type="submit" id="booster" value="Valider" class="button">
    </form>
    <form action="index.php" method="post" class="booster">
        <input type="hidden" name="mode" value="booster">
        <input type="hidden" name="matchid" value="2">
        <input type="hidden" name="booster" value="false">
        <input type="submit" id="booster" value="Valider" class="button">
    </form>

    Puis ensuite, par jquery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $('.booster').on('submit', function(event) {	   								   
        [...]					
        return false;
     });
    Comment modifier la valeur (value) du champ input "booster" dans le formulaire qui a été submitté.

    Ensuite, je sérialise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    event.preventDefault();
    $(this).serialize();
    Pour envoyer le tout en ajax.

    J'ai bien essayé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $("input[name='booster']").val("test");
    Mais bien entendu, ça modifie la value de tous les champs booster de tous les formulaires !!


    Merci de votre aide.

    coincoin22

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut
    Et:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var val = $(this).find("input[name='booster']").val();
    alert(val);
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert($(this).closest('.booster').find('input[name=booster]').val());
    me renvoit 'undefined' !!!!

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    1) <input type="submit" id="booster" value="Valider" class="button">.

    Un ID doit être unique !


    2) $( this ).find( "input[name='booster']" ).val( "test" );.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut
    Merci pour ta réponse.

    Mais si je fais ceci en retirant l'id booster.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="index.php" method="post" class="booster">
        <input type="hidden" name="mode" value="booster">
        <input type="hidden" name="matchid" value="1">
        <input type="hidden" name="booster" value="true">
        <input type="submit" value="Valider" class="button">
    </form>
    <form action="index.php" method="post" class="booster">
        <input type="hidden" name="mode" value="booster">
        <input type="hidden" name="matchid" value="2">
        <input type="hidden" name="booster" value="false">
        <input type="submit" value="Valider" class="button">
    </form>

    Puis,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     $('.booster').on('submit', function(event) {
        $( this ).find( "input[name='booster']" ).val();
    });
    Il me resort undefined.

    A noter que les formulaires sont créés dynamiquement en php par une requête sql et une boucle while.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = $link->query(".....");
     
    while($dnn = mysqli_fetch_assoc($sql))
    			{		
                            echo '<form action="index.php" method="post" class="booster">';
    			echo "<input type=\"hidden\" name=\"mode\" value=\"booster\">";
    			echo "<input type=\"hidden\" name=\"matchid\" value=\"".$dnn["id"]."\">";
    			echo "<input type=\"hidden\" name=\"booster\" value=\"".$dnn["booster"]."\">";
    			echo '<input type="submit" value="valider" class="button">';
    			echo '</form>';
    }

    Je pense qu'il y a peut-être un pb aussi de ce côté ???

    Merci de ton aide...

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par coincoin22 Voir le message
    A noter que les formulaires sont créés dynamiquement en php par une requête sql et une boucle while.

    Je pense qu'il y a peut-être un pb aussi de ce côté ?
    Oui, on() avec deux sélecteurs. Voir la FAQ dans ma signature.

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $( function(){ // forme abrégée de $(document).ready(function(){
     
        $( 'body' ).on( 'submit', 'form.booster', function( event ){
     
            // debug, console, touche F12
            console.log( $( this ).find( "input[name='booster']" ).val() );
     
            // transaction AJAX
     
            return false;
        });
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par défaut
    Merci pour ces explications. Mais malheureusement ça me sort "undefined".

    Voilà mon code complet (index.php):
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <div id="pronos">
    <?php
    $userid=$_SESSION['userid'];
    $sql = $link->query("........") or die (mysql_error());
    while($dnn = mysqli_fetch_assoc($sql)){
    	echo '<table width="100%">';
    	echo '<tbody><tr>';
    	echo '<td class="t5">';echo '<img src="images/archives.png">';echo '</td>';
    	echo '<td class="t10">';echo 'AAA';echo '</td>';
    	echo '<td class="t10">';echo $dnn['date2'];echo '</td>';
    	echo '<td class="t5">';echo '<img src="images/flags/'.$dnn['eq1'].'.png"/>';echo '</td>';
    	echo '<td class="t15">';echo $dnn["eq1"];echo '</td>';
    	echo '<form action="index.php" method="post" class="validation">';
    	echo "<input type=\"hidden\" name=\"mode\" value=\"validation\">";
    	echo "<input type=\"hidden\" name=\"matchid\" value=\"".$dnn["id"]."\">";
    	echo '<td class="t5">';echo '<select name="scoreEq1" id="seleq1">\n';for($i = 0; $i <= 9; $i++)echo '<option value='. $i .''.($i == $dnn["score1"] ? " selected" : "").'>'. $i .'</option>\n';echo '</select> ';echo '</td>';
    	echo '<td class="t5">';echo '<select name="scoreEq2" id="seleq2">\n';for($j = 0; $j <= 9; $j++)echo '<option value='. $j .''.($j == $dnn["score2"] ? " selected" : "").'>'. $j .'</option>\n';echo '</select> ';echo '</td>';
    	echo '<td class="t15">';echo $dnn["eq2"];echo '</td>';
    	echo '<td class="t5">';echo '<img src="images/flags/'.$dnn['eq2'].'.png"/>';echo '</td>';
    	echo '<td class="t10">';echo '<input type="submit" value="Valider" class="button">';echo '</td>';
    	echo '</form>';
    	echo '<form action="index.php" method="post" class="booster">';
    	echo "<input type=\"hidden\" name=\"mode\" value=\"booster\">";
    	echo "<input type=\"hidden\" name=\"matchid\" value=\"".$dnn["id"]."\">";
    	echo "<input type=\"hidden\" name=\"booster\" value=\"".$dnn["booster"]."\">";
    	echo '<td class="t10">';echo '<input type="submit" value="Booster ce match" class="button">';echo '</td>';
    	echo '</form>';
    	echo '<td class="t5">';echo 'AAA';echo '</td>';
    	echo '</tbody></tr>';
    	echo '</table>';
    }
    ?>  
    </div>

    Puis dans un fichier externe js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $( function(){ // forme abrégée de $(document).ready(function(){
        $( 'body' ).on( 'submit', 'form.booster', function( event ){
            // debug, console, touche F12
            console.log( $( this ).find( "input[name='booster']" ).val() );
            // transaction AJAX
            return false;
        });
    });

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/08/2006, 14h01
  2. [C#]Modifier la valeur d'un champs dans un listView
    Par fafa139 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/05/2006, 15h49
  3. Réponses: 9
    Dernier message: 04/05/2006, 17h33
  4. modifier la valeur d'un input
    Par zulkifli dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/03/2006, 10h34
  5. Utiliser la valeur d'un input dans une variable php
    Par megane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 16h02

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