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 :

[DOM] Solution en javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut [DOM] Solution en javascript
    Bonjour à tous,

    Je suis en train de développer un site web j'ai une page qui me sert de commande direct, les clients abitués choisir un produit à l'aide d'un menu déroulant, choisissent la quantité ainsi que les atributs du produit puis font de même pour un autre produit si necessaire.

    J'ai fait en sorte qu'il n'y est qu'une seule ligne de produit disponible au debut, au moment ou la personne choisit un produit dans le menu déroulant, une 2eme ligne apparait etc..

    Aussi, sur le menu déroulant j'ai placé un Onchange:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onChange="document.getElementById(\'directbuy\').submit()"
    Se qui me permet d'actualiser la page et faire apparaitre un second menu deroulant.

    Mon soucis est le suivant, lorsque je choisit un produit, celui est automatiquement ajouté au panier... j'aimerai que l'ajout au panier se fasse que lorsqu'e je clique sur le bouton ajouter au panier.

    On m'a conseillé de placer en javascript l'ajout d'une variable au moment du clique sur le BOUTON mais je ne sait comment faire ca...

    Je viens donc vous demander de l'aide

  2. #2
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    salut
    d'apres moi le mieux c que tu fasses une fonction consMenuDerProd() en te servant des propriétés DOM. puis dans <body></body> tu déclare des endroits où il faudra ajouter des menu en faisant des <div>. finalement, sert-toi d'un lien et l'evenement onClick pour l'ajout d'un nouveau menu ( à voir si on veux implémenter avec l'évenement onChange de chaque menu ... )

    voici un exemple

    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
     
    <head>
    <script>
    var nbProd=1;
    function consMenuDerProd(nb){
    	// le premier menu a le id NAME=produit1
    	// le deuxieme menu aura pour id NAME=produit2 ...
     
    	// construire dynamiquement les noeuds
    	elemSelect = document.createElement("select");
    	elemSelect.setAttribute("name","produit"+nb);
     
    	elemOption = document.createElement("option");
    	elemOption.setAttribute("value","cahierAAA");
    	text = document.createTextNode("Cahier AAA");
    	elemOption.appendChild(text);
    	elemSelect.appendChild(elemOption);
     
    	elemOption = document.createElement("option");
    	elemOption.setAttribute("value","styloBBB");
    	text = document.createTextNode("Stylo BBB");
    	elemOption.appendChild(text);
    	elemSelect.appendChild(elemOption);
     
    	elemOption = document.createElement("option");
    	elemOption.setAttribute("value","crayonCCC");
    	text = document.createTextNode("Crayon CCC");
    	elemOption.appendChild(text);
    	elemSelect.appendChild(elemOption);
     
    	// ajouter au div "lesMenus"	
    	elemDivMenus = document.getElementById("lesMenus");
     
    	elemBR = document.createElement("br");
    	elemDivMenus.appendChild(elemBR);
     
    	elemDivMenus.appendChild(elemSelect);
    }
     
    // on pourrait faire une fonction consMenuDerQuant pour la construction de quantités ...
    </script>
    </head>
    <body>
    	<form>
    		<div id="lesMenus">
    			<script>consMenuDerProd(nbProd); nbProd++;</script>
    		</div>
    		<a href="#" onClick="consMenuDerProd(nbProd);">Ajouter...</a>
    	</form>
    </body>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Le soucis est que le menu deroulant contient +100 prduits repertorié à partir d'une bdd.

  4. #4
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div>
    	<select onchange="this.parentNode.appendChild(this.cloneNode(true));">
    		<option value="0"></option>
    		<option value="1">un</option>
    		<option value="2">deux</option>
    		<option value="3">trois</option>
    	</select>
    </div>

  5. #5
    Membre chevronné Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Par défaut
    Citation Envoyé par nico341 Voir le message
    Le soucis est que le menu deroulant contient +100 prduits repertorié à partir d'une bdd.
    il suffit de faire une boucle for sur les produits mais cela dépend de ton implémentation. soit t'as une BDD en fichier XML que tu parse avec docXML, tu récupère les noeuds avec getElementsByTagName qui te donne un tableau en Array et la fonction devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       for (i=0; i<tableProd.length; i++){
            elemOption = document.createElement("option");
    	elemOption.setAttribute("value",tableProd[i]);
    	text = document.createTextNode(tableProd[i]);
    	elemOption.appendChild(text);
    	elemSelect.appendChild(elemOption);
       }
    soit tu le fais en PHP ^^

  6. #6
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Tu peux créer dans ton formulaire un champs caché dont la valeur sera alimentée au click sur le bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form id="form" name="form" method="post" action="">
        <input type="hidden" name="validation_panier" id="validation_panier" />
        <input type="submit" name="button" id="button" value="Envoyer" onclick="document.form.validation_panier.value='OK'" />
    </form>
    Ensuite avant ta requète SQL d'ajout au panier tu testes si la valeur de ton champs caché est à "OK"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php if($_POST['validation_panier'] == "OK")
    {
    On effectue la requète
    }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Cool merci beaucoup à tous , j'ai adopté la solution de jumano qui me parrait la plus simple et ca marche niquel.

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

Discussions similaires

  1. [DOM] XML+XSL: JavaScript peut-il modifier le XML? ou le DOM?
    Par maskim dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/12/2007, 15h05
  2. [DOM] Quotes en Javascript
    Par APoLLoN1234 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/06/2007, 07h35
  3. [DOM] inclure fichier javascript en javascript
    Par italiasky dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/05/2007, 13h29
  4. [DOM] Textarea et javascript
    Par thierryG dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/03/2007, 18h22
  5. [DOM] tableau et javascript
    Par franfr57 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 20/12/2006, 16h46

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