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érer valeur d'un select et le passer en variable [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Il est dans mon code ajax :

    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
    $(document).ready(function() {
    	$("form#formulaire_calcul").submit(function() {
    		$.getJSON("controleur.php",
    		{
    		"action" : "calculer",
    		"nombre_a" : $("input#nombre_a").val(),
    		"nombre_b" : $("select#select").val()
    		},
    		function(data) 
    			{
    			$("input#resultat_addition").val(data['resultat_addition']);
    			}
    		);
    		return false;
    	});
    });
    Le montant de l'addtion nombre_a + nombre_b = Montant() passe bien.

    J'ai bien dans mon mail Montant() mais il additionne pas nombre_b, il affiche la valeur sans les frais de port.

    Si j'ajoute dans mon code la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="resultat_addition">
    Le montant de l'addition s'affiche bien une deuxième fois

  2. #22
    Invité
    Invité(e)
    Par défaut
    Peux-tu exprimer avec des mots cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			$("input#resultat_addition").val(data['resultat_addition']);

  3. #23
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    C'est un code que j'ai récupérer sur un cours en ligne.

    Je pense que ça veux dire afficher l'addition. En tout qu'à ça fonctionne bien.

    Je commence à m'arracher les cheveux

  4. #24
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par CVS62 Voir le message
    C'est un code que j'ai récupérer sur un cours en ligne.

    Je pense que ça veux dire afficher l'addition. En tout qu'à ça fonctionne bien avec cette ligne de code.

    Je commence à m'arracher les cheveux
    Si je peux avoir le même résultant avec une autre méthode je suis preneur. Ce qui me rend fou, c'est qu'à l'écran, on à l'impression que c'est ok.

    Toutes les variables passent nickel, sauf une. Ca vient pas d'ajax car si je remplace la liste choix par une valeur que j'indique je la récupère sans problème !!!

    Indiquer votre frais de transport avec nombre_b, je l'ai dans mon mail !!!!! Je demande une liste de choix et ça passe plus !!!!


  5. #25
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par CVS62 Voir le message
    Je pense que ça veux dire afficher l'addition....
    Evidemment, si tu ne comprends même pas la signification du code...
    ca va être difficile d'aller plus loin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			$("input#resultat_addition").val(data['resultat_addition']);
    En clair, ça veut dire :
    le résultat data['resultat_addition'] est passé en value de l'input ayant l'id : "resultat_addition".

    Il faut donc un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="resultat_addition" value="" name="resultat_addition" />
    D'où la question précédente :
    Où est-il dans ton code ?
    Dernière modification par Invité ; 28/03/2015 à 16h32.

  6. #26
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Points : 167
    Points
    167
    Par défaut
    Bonjour,

    ajoutons déjà ";"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input name="nombre_a" type="text" id="nombre_a" form="formulaire_calcul" value="<? echo Montant(); ?>" />

    Attention au mélange de doctype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input id="resultat_addition" />
    
    // <br> ou
    <br />
    Certains navigateurs déteste ça!


    Et les Balises php : De préférence, toujours en minuscule <?PHP <?php

    la fonction Montant() vient d'ou? D'un include/require? Ou dans la page?
    Regardes ce que tu obtiens dans le fichier source du navigateur pour l'input nombre_a .

  7. #27
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Evidemment, si tu ne comprends même pas la signification du code...
    ca va être difficile d'aller plus loin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			$("input#resultat_addition").val(data['resultat_addition']);
    En clair, ça veut dire :
    le résultat data['resultat_addition'] est passé en value de l'input ayant l'id : "resultat_addition".

    Il faut donc un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="texte" id="resultat_addition" value="" name="resultat_addition" />
    D'où la question précédente :

    C'est dans mon code : calcul.js via <script type="text/javascript" src="calcul.js"></script>dans l'head

    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
    $(document).ready(function() {
    	$("form#formulaire_calcul").submit(function() {
    		$.getJSON("controleur.php",
    		{
    		"action" : "calculer",
    		"nombre_a" : $("input#nombre_a").val(),
    		"nombre_b" : $("select#select").val()
    		},
    		function(data) 
    			{
    			$("input#resultat_addition").val(data['resultat_addition']);
    			}
    		);
    		return false;
    	});
    });

  8. #28
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par omdafer Voir le message
    Bonjour,

    ajoutons déjà ";"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input name="nombre_a" type="text" id="nombre_a" form="formulaire_calcul" value="<? echo Montant(); ?>" />

    Attention au mélange de doctype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input id="resultat_addition" />
    
    // <br> ou
    <br />
    Certains navigateurs déteste ça!


    Et les Balises php : De préférence, toujours en minuscule <?PHP <?php

    la fonction Montant() vient d'ou? D'un include/require? Ou dans la page?
    Regardes ce que tu obtiens dans le fichier source du navigateur pour l'input nombre_a .
    Merci pour ses conseils.

    Pour ta réponse :

    <?
    session_start();
    include_once("fonctions-panier.php");
    include("include/header.php");
    ?>

    Le calcul se fait dans fonctions-panier.php pour la partie panier d'achat.

    Montant() est l'addition des articles de mon panier sans les frais de port.

    Je n'ai pas de problème pour le montant de l'addition, je récupère le montant sans problème dans mon mail.

  9. #29
    Invité
    Invité(e)
    Par défaut
    Il y a manifestement des problèmes de communication... et de compréhension mutuelle.

  10. #30
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Mon problème, vient de mon calcul ajax ? de mon code javascript ?

    Il y a pas moyen de faire un select en php ?

    Merci encore pour votre aide.

  11. #31
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Points : 167
    Points
    167
    Par défaut
    Et pourquoi pas tout en jquery :
    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
    $(document).ready(function() {
    
    
     $('select#select').on('change', function() {
    var monselect= $(this).val();
    $("input#nombre_b").val(monselect);
    
    $.getJSON("controleur.php",
        {
            "action" : "calculer",
            "nombre_a" : $("input#nombre_a").val(),
            "nombre_b" : $("input#nombre_b").val() 
        },
        function(data) 
        {
            $("input#resultat_addition").val(data['resultat_addition']);
        }
    );
    
    
    
        });    
    )};

  12. #32
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    J'ai remplacé mon code par le tient et je n'ai pas l'addition.

    Merci pour ton aide.

    Après une multitude de test, c'est cette saloperie de variable qui n'est pas prise en compte. Elle doit pas partir !!!

  13. #33
    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
    Tant que tu ne pourras pas
    - nous décrire de façon simple et claire ton problème, ce que tu veux faire, ce que tu obtiens
    - nous fournir les différents codes en jeu et la façon dont ils sont liés les uns aux autres (et pas des bouts de code jetés par ci par là)
    - faire les modifications que nous t'indiquons.
    on continuera à faire des pages et des pages de discussions qui ne menent à rien.

    Pour exemple à 16h49 tu nous dis "je n'ai pas l'addition". Moi je ne sais pas quelle addition tu veux ni quelle code gère cette addition ni à quelle endroit elle est manquante ; de plus dans le message précédent tu nous disais "Je n'ai pas de problème pour le montant de l'addition".

    Donc remet tout au clair s'il te plait.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #34
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Je récapitule :

    J'ai un panier d'achat avec un total du panier Montant()

    Un sélecteur avec un choix de destination pour les frais de port nombre_b

    Un total à payer Montant() + nombre_b = $do_op

    A l'écran tout fonctionne partie client, il a bien l'addition de son panier, il sélectionne son pays, il a les frais de port à l'écran via du javascript pour l'avoir en direct sans rien toucher.

    L'addition se fait bien à l'écran. Le hic, c'est lorsque je reçois la commande j'ai bien tous les éléments, sauf les frais de port qui s'affiche pas. Le montant des achats hors frais port et tout le reste son bien envoyé.

    J'ai une version sans sélecteur, le client tape son frais de port et je reçois bien le montant déclaré via nombre_b. Le calcul se fait en ligne.

    Mon idée est de facilité la vie du client et éviter les erreurs et de proposer une liste de choix, le client choisit son pays, les frais de port s'affiche et ça calcule via le bouton calculer ma commande.

    Le truc, c'est qu'avec le selecteur, je n'arrive pas à envoyer le montant des frais de port ( nombre_b ).

    Pourquoi j'arrive à envoyer nombre_b dans un champ libre et dès que je choisi une liste de choix, la valeur nombre_b ne passe plus !!!

    C'est un truc de fou !!!

    A mon avis, il faut voir pour réussir à envoyer nombre_b comme si on le tapait dans un champ libre. Le code après suit, il y a pas de problème.

    Mon truc est envoyer la valeur de ma liste de choix. Je peux modifier le nom nombre_b par select ou tintin, c'est pas un problème pour moi.

    Il faut que nombre_b soit transmisse, envoyer à mon formulaire pour traitement.

    Je m'excuse ca à la force de chercher et de tester je m'y perd aussi un peu !!!

    En image pour que ce soit plus simple, on voit bien que tout passe bien !!!
    Images attachées Images attachées  

  15. #35
    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 ton <select> s'appelle nombre_b maintenant ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #36
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Si je passe select en nombre_b comme ça devrait le faire normalement, j'ai plus l'affichage du port.

    Donc plus de calcul car le calcul à besoin de choper la valeur afficher dans la valeur du port.

    C'est là ou je bloque.

    Si je supprime l'affichage du port, je n'ai plus d'addition, car le calculateur va prendre la valeur dans l'affichage nombre_b.

    J'ai bien étudier vos recommandations, fait un tas de test, mais je bloque.

    On peut pas faire un selecteur en php au lieu d'en html ? Genre tableau ??? On choisit une valeur du tableau et hop !!!!

    Si je bidouille mon code en javascript pour l'affichage de la valeur en direct, ça ne va plus !!!

    Je suis bien conscient que pour récupérer ma variable nombre_b, il faut que je soit en name="nombre_b" et non pas en name="size". Le truc est d'arriver à avoir l'affichage en live avec nombre_b !!!

    Je redonne le code de l'affichage en direct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script language="javaScript">
    function SelectValueChamp(){
    valeur=document.forms['liste'].elements['size'].options.selectedIndex;
    v_valeur=document.forms['liste'].elements['size'].options[valeur].value;
    document.forms['liste'].elements['nombre_b'].value=v_valeur;
    }
    </script>
    Merci beaucoup pour votre aide, j'y suis depuis 1 semaine et demi !!!

  17. #37
    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
    Commence par donner des noms pertinents à chacun de tes champs et on pourra y voir plus clair sur quoi sert à quoi.
    Parce que "size" pour une liste de pays (qui en plus cache en fait des frais de port) et "nombre_b" pour la même chose ...

    De plus on te l'a déjà dit, le calcul doit se faire avec la valeur de la liste déroulante : que tu affiches le frais de port à côté, c'est bien, mais n'embrouille pas tout.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #38
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Ok, je vais le faire demain, mais ça vas pas résoudre mon problème à mon avis ...

    Je te remercie et te souhaite une bonne soirée.

  19. #39
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 63
    Points : 15
    Points
    15
    Par défaut
    Voici la nouvelle version avec les noms changés comme tu me l'as demandé pour une meilleur compréhension de mon code. J'ai changé les codes dans les autres fichiers pour le calcul.

    Size est devenu FDP et nombr_b est devenu Transport


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- Ligne de code pour afficher les frais de port dans le champ en direct -->
    <script language="javaScript">
    function SelectValueChamp(){
    valeur=document.forms['liste'].elements['FDP'].options.selectedIndex;
    v_valeur=document.forms['liste'].elements['FDP'].options[valeur].value;
    document.forms['liste'].elements['Transport'].value=v_valeur;
    }
    </script>
    <!-- Fin du 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
    <!-- Sélecteur de pays pour afficher les frais de transport -->
     
    <form id="formulaire_calcul" method="post" name="liste">
     
      <select name="FDP" id="select" style="width:120px" Onchange="javascript:SelectValueChamp();"">
          <option value="">Choisir pays</option>
          <option value="17.50">Belgique</option>
          <option value="16.80">Italie</option>
          <option value="22.80">Suisse</option>
      </select>
     
      <label for="Transport">: </label>
      <input name="Transport" type="text" id="Transport" form="formulaire_calcul"/><!-- Good -->
     
        <br>
        <br>
      <font color="navy"><u>Montant hors frais de transport</u></u> : </font></label>
      <input name="nombre_a" type="text" id="nombre_a" form="formulaire_calcul" value="<? echo Montant() ?>" />
    &euro;<br>
    <br>
     
    <!-- Calcul des frais de transport en ajax -->
    <input name="action" type="hidden" form="formulaire_calcul" value="Calculer" />
    <input type="submit" value="Calculer le montant de votre commande" />
    </form>
     
     <?
     		  echo "</td></tr>";   
    		  echo "$Transport";
    		  echo "<tr><td colspan=\"2\"></td>";
    	      echo "<td colspan=\"2\">";
     
    		  ?>
     
     
    <div>
    		<label for="resultat_addition"><font color="navy"><strong><strong><u>TOTAL à payer</u></strong></font> : </label>
    		<input id="resultat_addition" type="text" value="<? echo $do_op ?>"readonly />
    &euro;</div>
            <?
    		  echo "</td></tr>";	  	  				 	      	      
     
     
    		 		  	  }
    		  }
    			  	?>

  20. #40
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- Ligne de code pour afficher les frais de port dans le champ en direct -->
    <script language="javaScript">
    function SelectValueChamp(){
    valeur=document.forms['liste'].elements['FDP'].options.selectedIndex;
    v_valeur=document.forms['liste'].elements['FDP'].options[valeur].value;
    document.forms['liste'].elements['Transport'].value=v_valeur;
    }
    </script>
    <!-- Fin du code -->
    1/ => Es-tu capable de transformer/ré-écrire ce code (en JavaScript pur) en jQuery ?

    2/ Re-donne aussi la totalité du code !
    Pas juste des petits bouts...

    3/ remplace tous les <? en <?php !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [MySQL] Récupérer valeur d'un select en utilisant systeme de template
    Par Blade dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/11/2008, 10h43
  2. Récupérer valeur d'un select d'un FormView pour la poster
    Par fetardalyon dans le forum Débuter
    Réponses: 1
    Dernier message: 24/09/2008, 15h32
  3. récupérer valeur d'un select et le passer à une autre page
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/01/2008, 17h48
  4. Récupérer valeur d'un select multiple
    Par christgh dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2007, 14h53
  5. Récupérer valeur d'un select
    Par nicoaix dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/01/2006, 14h21

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