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

JavaScript Discussion :

Récupérer un id automatique


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut Récupérer un id automatique
    Bonjour,

    J'ai un problème concernant un tableau de calcule.
    Je dois remplir un tableau grâce à une requête et php.
    Ensuite je fais un foreach{} sur le resultat. Jusque là tout va bien.

    Dans ce tableau, j'ai des champs input avec un id automatique en utilisant une clé ! Pour faire mes calcules, j'ai besoin de récupérer les valeurs de ces champs grâce à l'ID seulement je ne sais pas comment le passer à ma fonction js.
    Code html : 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
    <form method="post">
                    <h3>IMB</h3>
                    <table id="ftth" class="display table table-bordered table-hover list-com">
                        <thead>
                        <tr>
                            <th>Dossier</th>
                            <th>Date de chargement Dossier minute</th>
                            <th>EL calculé</th>
                            <th>El effectif</th>
                            <th>Prix calculé</th>
                            <th>Ville</th>
                            <th class="text-center">Attacher</th>
                        </tr>
                        </thead>
                        <tbody>
                        <?php foreach($imb as $c):
                            $date = new DateTime($c->date_minute);
                            ?>
                            <tr>
                                <td><?= $c->dossier;?></td>
                                <td><?= $date->format('d-m-Y');?></td>
                                <td><?= $c->nb_logements;?></td>
                                <td><input type="number" class="form-control input-sm" name="<?= 'el_'.$c->dossier;?>" value="<?= $c->nb_logements;?>" onChange="calcul()"></td>
                                <td class="text-right">
                                    <input type="hidden" id="<?= 'PU_'.$c->dossier;?>" name="<?= 'PU_'.$c->dossier;?>" value="<?= $c->prix;?>"  onblur="calcul()">
                                    <input type="number" id="<?= 'PT_'.$c->dossier;?>" class="form-control input-sm" name="<?= 'PT_'.$c->dossier;?>" readonly>
                                    <?php
                                    $total = $c->nb_logements*$c->prix;
                                    echo $total.' €';
                                    ?>
                                </td>
                                <td><?= $c->localite;?></td>
                                <td class="text-center">
                                    <input name="<?= 'chek_'.$c->dossier;?>" type="checkbox">
                                </td>
                            </tr>
                        <?php endforeach;?>
                        </tbody>
                    </table>
                    <button type="submit" name="submit" class="btn btn-success pull-right btn-com">Valider</button>
                    <button type="button" name="submit" class="btn btn-primary pull-right btn-com">Recalculer</button>
     
                </form>

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 19
    Par défaut
    J'ai peur de ne pas tout comprendre.

    Quand tu fait on onblur="calcul", ta fonction calcul a le contexte
    donc normalment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function calcul(){
      var id = this.id;

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut
    en fait mon tableau ressemble à ça
    Le onblur="calcul" c'etait en fait des tests !

    Ce que je veux par rapport à mon tableau, lors du chargement de ma page, que le prix soie calculé en fonction de EL calculé (facile, je récupère ça de ma base de donnée)

    En revanche (et je pense que mon problème est plus compliqué que ça) lorsque le El effectif est modifié, il faut recalculer le prix.
    1er problème pour moi, comment recalculer le prix dès qu'une valeur est modifié ?
    2ieme problème, et je viens seulement d'y penser, le prix unitaire est lié au nombre d'El, genre de 0 à 4 c'est 50 €, et de 5 à 12 c'est 100€, comment récupérer la valeur d'el et l'envoyer vers un traitement php sans recharger la page ?

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 19
    Par défaut
    "lorsque le El effectif est modifié, il faut recalculer le prix.
    1er problème pour moi, comment recalculer le prix dès qu'une valeur est modifié ?"

    En ajoutant un event "onblur" dessus
    Dans ta fonction, tu modifie le inner de "Prix caclulé" avec le nouveau prix calculé

    "2ieme problème, et je viens seulement d'y penser, le prix unitaire est lié au nombre d'El, genre de 0 à 4 c'est 50 €, et de 5 à 12 c'est 100€"

    Les valeur unitaire viennent d'une BDD puis suive un algo suivant une réduc ...
    En gros comment calcul tu se prix

    "comment récupérer la valeur d'el et l'envoyer vers un traitement php sans recharger la page ?"
    Pour sa ajax

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 201
    Par défaut
    Bonjour,
    la réponse que j'ai faite dans cette discussion : Calcul et mise à jour automatique des champs, devrait vous intéresser.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut
    Bon j'ai peut être trouvé comment faire mais un point bloquant pour moi, comment récupérer la valeur de El effectif sur la ligne où il a été modifié ? Comme je l'ai dit, l'ID est un clé créé en php.
    En fait je vais modifier mon tableau en ajoutant une liste déroulante, une foi El effectif modifié et le choix du prix dans la liste déroulante, l'utilisateur cliquera sur "Recalculer" qui déclenchera la fonction calcul().
    Dans cette fonction il faudra que je boucle tout les éléments qui ont été modifié ! Là je sais pas du tout comment tout récupérer !

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut
    Bon si je fais ligne par ligne, j'ai mis onChange="calcul()" sur l'input El effectif et sur mon select qui contient une liste de prix.

    dans ma fonction calcul si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function calcul()
    {
        var prix = this.id;
        console.log(prix);
    }
    la console me retourne undefined donc est ce que l'id est bien trouvé?

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 180
    Par défaut
    Bon j'ai presque réussi à obtenir ce que je voulais, juste une dernière chose, j'ai une variable bpu qui contient les résultats de ma requête qui m'affiche les prix dans la liste déroulante.
    Comment renvoyer cette variable a ma fonction js, et surtout comment m'en servir après dans ma fonction (lire toute les lignes)

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 19
    Par défaut
    Toujjours pareil, tu met un pointeur(id) sur ta liste déroulante, puis dès que tu en a besoin en js

    document.getElementById('le_pointeur');
    Après a toi de voir comment tu veut gérer, si tu veut la liste dès value ou du inner ...
    Faudrait voir sommairement a quoi ressemble le html généré et quelle valeur tu souhaite obtenir ?
    Tu veut le select (prix ?) séléctionné, toute la liste ? ...

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

Discussions similaires

  1. [XL-2010] Récupérer valeur filtre automatique vba
    Par saigon dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 25/03/2020, 20h07
  2. Réponses: 4
    Dernier message: 06/08/2007, 10h54
  3. Récupérer automatiquement des fichiers sous ftp
    Par Mourne dans le forum Windows
    Réponses: 1
    Dernier message: 03/01/2007, 12h21
  4. Réponses: 6
    Dernier message: 18/10/2006, 16h34

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