Actualiser un prix automatiquement suivant la selection d'un poids - HTML/CSS - Programmation
Marsh Posté le 24-02-2010 à 13:31:55
Java ou Javascript ? Java : ce n'est pas la bonne cat...
Javascript : appliquer un "onchange" au select, qui appelle une fonction Javascript.
type onchange="RefreshPrice(this.value)" et dans RefreshPrice un document.getElementbyId('...')
Marsh Posté le 24-02-2010 à 16:09:29
NewsletTux a écrit : Java ou Javascript ? Java : ce n'est pas la bonne cat... |
oui un Javascript désolé.
Je vais essayer de regarder ta piste. Merci
Marsh Posté le 24-02-2010 à 16:55:15
Bon j'ai trouvé un petit script simpa :
Code :
|
Donc si je l'adapte à moi sa donnerait çà :
Code :
|
Mais sans tester je sais que ça ne marchera pas car la variable $prix n'existe plus une fois la page exécute, alors comment faire?
Je pourais bien modifier la valeur des <select> mais j'ai besoin de connaitre le poids aussi, se qui serait bien c'est d'avoir un value2="" mais je pense pas que sa soit possible. Si vous avez une solution. merci
Marsh Posté le 24-02-2010 à 18:11:37
Rien compris ton histoire avec les selects, pour le reste tu peux déclarer une variable Javascript quand ta page est créée et lui affecter une valeur générée par PHP, comme ca tu peux t'en resservir plus tard. Ou alors si tu veux pas la variable Javascript, tu peux faire une balise input de type hidden mais bon ca revient au meme en moins pratique.
Ex pour un seul produit, à l'arrache:
Code :
|
Après si t'as plein de produits, utilise un tableau au lieu d'une seule variable.
Marsh Posté le 24-02-2010 à 20:01:51
lasnoufle a écrit : Rien compris ton histoire avec les selects, pour le reste tu peux déclarer une variable Javascript quand ta page est créée et lui affecter une valeur générée par PHP, comme ca tu peux t'en resservir plus tard. Ou alors si tu veux pas la variable Javascript, tu peux faire une balise input de type hidden mais bon ca revient au meme en moins pratique.
|
Déjà merci pour ton aide.
Après j'ai essayé de faire ça mais comme je n'ai jamais fais de javascript j'ai un peut de mal :
Code :
|
Sa ne marche pas mais je ne comprends pas à quoi sert source.options[source.selectedIndex].value ? merci
Marsh Posté le 24-02-2010 à 22:59:53
Alors voyons voir.
Pour source.options[source.selectedIndex].value, c'est en fait très facile:
- source, tu l'as passé en argument, c'est ton élement <select>,
- source.options[] c'est un tableau contenant toutes les <option> du <select>, premier index à 0, et dans l'ordre où ils sont sur ta page,
- source.selectedIndex c'est une propriété du <select> qui donne l'index de l'option actuellement sélectionnée,
- source.options[source.selectedIndex] t'amène donc à l'élément <option> actuellement sélectionné,
- le .value te fait récupérer sa valeur.
Maintenant, rapide correction.
En fait t'as à la fois un prix en fonction du conditionnement, plus une quantité.
Le plus simple dans ton cas, c'est probablement de caser le prix directement dans l'attribut "value" de tes options. Du coup, meme pas besoin de te trimballer le tableau.
Après, la quantité fait un peu chier, faut vérifier que c'est bien un nombre. Mais finalement c'est pas si casse couilles que ca vu que je suppose que c'est censé etre que des entiers positifs.
Ensuite, j'ai déplacé le ID "prix-1" vu que c'est pas tout ton <p> que tu veux rafraichir, sinon tu vas perdre le reste de ton texte.
Enfin, le parametre destID que tu passes à la fonction est censé etre une chaine de caractères -> délimitée par des quotes.
Code :
|
Bon c'est au pifomètre, dis moi si ca marche. Puis faudrait aussi ajouter quelque chose pour faire rafraichir le prix quand la quantité change dans la zone de texte.
Marsh Posté le 25-02-2010 à 08:59:52
Bon j'essaye de comprendre vos codes en les modifiant etc ...
Mais j'ai un problème avec les fonctions, se code marche très bien :
Code :
|
il me change bien la valeur par 4 du prix
Code :
|
mais celui là ne marche pas et je ne comprends pas pourquoi.
Marsh Posté le 25-02-2010 à 09:31:27
il ne faut pas dire "ce code ne marche pas" mais "ce code retourne l'erreur XXXXXXX avec le message YYYYY".
Si tu es sous firefox, regarde dans la console Javascript l'erreur produite.
Si tu insères ton <script> tel quel, ça ne marche pas parce que à mon avis, quand le navigateur (qui lit le code source de haut en bas) arrive au <script>, il n'a encore rencontré aucun élément dont l'ID vaut "prix-1".
essaie de le mettre après le select, ou en fonction JS dans un fichier séparé (et appelé depuis le head de ta page)
Marsh Posté le 25-02-2010 à 10:18:03
Ok, la prochaine fois je regarderais la console de firefox.
Pour résoudre mon problème j'ai mi des paramètres :
Code :
|
Maintenant que ça marche je voudrais mettre mes poids et prix dans un tableau mais quand je crée le tableau sans php pas de problème :
Code :
|
Mais quand je le crée avec php :
Code :
|
- "<?php echo $produits_donnees['id']; ?>" vaut 1
firefox me dis Erreur : tab[1] is undefined
avec <a href="#" Onclick = "alert(tab[<?php echo $produits_donnees['id']; ?>][130]);"> Test</a>
Alors que dans le code source j'ai bien :
Code :
|
La je ne vois pas pourquoi ça ne marche pas? Merci encore de votre aide.
Marsh Posté le 25-02-2010 à 10:19:56
NewsletTux a écrit : il ne faut pas dire "ce code ne marche pas" mais "ce code retourne l'erreur XXXXXXX avec le message YYYYY". |
La fonction n'est pas exécutée à sa création, c'est probablement pas un problème d'élément non présent...
Après, le code a l'air bon, donc effectivement, faut regarder l'erreur remontée, de préférence avec Firefox parce que sous IE c'est la plupart du temps incompréhensible.
Autre truc hppp, plutot que de lancer le rafraichissement sur onclick, fais le sur onchange plutot, c'est plus propre.
Marsh Posté le 25-02-2010 à 10:21:53
Ton tableau, il est déclaré à quel moment dans ta page ? Il est bien global ?
Marsh Posté le 25-02-2010 à 10:22:53
T'es sur que ca marche avec le premier code?
Je dirais qu'il faut que tu rajoutes le mot clé "var" devant ta première affectation de tab, pour bien définir que c'est une variable globale:
var tab = new Array();
Marsh Posté le 25-02-2010 à 11:27:47
donc j'ai changé par :
Code :
|
voilà mon script en gros, je le met donc entre les <body>.
Mais j'ai toujours l'erreur : Erreur : tab[1] is undefined
JavaScript semble pas facile comme langage quand même.
Merci de votre aide
Marsh Posté le 25-02-2010 à 12:14:15
hppp a écrit : donc j'ai changé par :
|
Bizarre...
Dans ton navigateur, tu peux afficher le code source de la page (celui que tu recois après le passage de PHP). Menu View -> Source ou un truc dans le genre selon ton navigateur. Peux-tu regarder ca et vérifier que le <script> affecte bien des trucs à tab[1]?
Javascript ca pue puissance 1000, c'est pas très compliqué mais le fait que ca soit implémenté différemment par quasiment chaque navigateur fait que c'est la grosse merde. Du code optimisé pour IE marchera pas ou mal sous Firefox, et vice versa; la gestion de la mémoire est pourrie au possible quelque soit le navigateur, tu te retrouves souvent à faire de l'optimisation "technique", donc casse couilles et pas intéressant (pour moi), etc, etc.
Par contre, les résultats que tu peux obtenir avec, ca dépote.
Marsh Posté le 25-02-2010 à 12:19:40
Voilà le code source après le php :
Code :
|
Et y a rien de mieux que le java alors? Merci
Marsh Posté le 25-02-2010 à 12:32:07
hppp a écrit : Voilà le code source après le php :
Et y a rien de mieux que le java alors? Merci |
Mwai c'est vraiment bizarre ton truc. A priori ca devrait marcher tranquille. Y'a un numéro de ligne avec ton erreur? Y a nulle part d'autre sur ta page ou tu essayes de taper dans le tableau?
Si c'est pas encore le cas, fais une page de test avec le minimum, juste ca dans une balise <body> et c'est tout, et regarde si ca plante toujours.
Je suppose que y'a pas moyen qu'on accède à ta page de test en live?
Et sinon, Java != Javascript, et pour faire des trucs coté client, je connais que Javascript. P'tetre Flash mais j'y connais rien.
Marsh Posté le 25-02-2010 à 12:46:28
Bon sa marche dans une page à part donc je vais regarder pourquoi ça bug.
Merci encore.
Marsh Posté le 26-02-2010 à 12:03:03
Bon, tous marche super bien, déjà merci mais j'ai un petit problème.
Sur certain calcule j'ai par exemple 8.3400000003 et je voudrais qu'il arrondisse au nombre supérieur donc 8.35 mais je ne sais pas comment faire en javascript.
Merci
Marsh Posté le 26-02-2010 à 15:27:41
Roh bah quand meme, cherche un peu dans d'la doc, c'est facile à trouver.
Math.round(8.3400000003); te renverra 8.
Math.round(8.3400000003*100)/100; te renverra 8.34.
Marsh Posté le 24-02-2010 à 12:39:26
Salut à tous
voilà la fin de mon formulaire pour commencer :
Je voudrais donc en java actualiser le prix automatiquement après que le client est changé le conditionnement du produit sans actualiser la page, mais je ne sais pas du tous comment faire en java, pourriez vous m'aider en m'indiquant quel fonction utiliser? merci de votre aide.