> Tous les forums > Forum des Webmasters
 variable d'un select MAJ en "directe"
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
007good
  Posté le 20/09/2012 @ 22:29 
Aller en bas de la page 
Petit astucien

Bonjour,

J'ai une petite liste deroulante. Dont j'utilise la variable de sortie $id_select qui prends la valeur choisi par l'utilisateur.

Seulement j'aimerai que cette variable prenne la bonne valeur des le choix de l'usager et pas besoin de recharger une page.

<tr>
<td>1.</td>
<td><select name="couleurs_pant_1">
<option value="0">-------------</option>
<option value="1">Noir</option>
<option value="2">Blanc</option>
</select></td>
<td><select name="taille_pant_1">
<option value="0">------------</option>
<option value="1">XS</option>
<option value="2">S</option>
<option value="3">M</option>
<option value="4">L</option>
<option value="5">XL</option>
<option value="6">2XL</option>
<option value="7">3XL</option>
</select></td>
<td><select name="quantite_pant_1">
<option value="0">------------</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></td>
<td><? echo 330*$quantite_pant_1; ?></td>
</tr>

Pour l'instant cela ne fonctionne pas :(

Publicité
micron
 Posté le 21/09/2012 à 08:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut,

C'est tout à fait normal, PHP est exécuter du coté serveur, pas du coté client donc il ne peut pas récupérer la valeur dans ton select.

La meilleure moyen a faire c'est de soit faire un script en Javascript (avec jQuery pour plus de facilité ) ou soit faire un script en Ajax.

Voici un exemple de script avec jQuery

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
$(function() {
$("select#qte_pant_1").change(function(){
a = $('option:selected', this).val();
$("td#affiche").text(a);
});
});
</script>
</head>
<body>
<table>
<tr>
<td>1.</td>
<td>
<select name="couleurs_pant_1">
<option value="0">-------------</option>
<option value="1">Noir</option>
<option value="2">Blanc</option>
</select>
</td>
<td>
<select name="taille_pant_1">
<option value="0">------------</option>
<option value="1">XS</option>
<option value="2">S</option>
<option value="3">M</option>
<option value="4">L</option>
<option value="5">XL</option>
<option value="6">2XL</option>
<option value="7">3XL</option>
</select>
</td>
<td>
<select id="qte_pant_1" name="quantite_pant_1">
<option value="0">------------</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
</td>
<td id="affiche">&nbsp;</td>
</tr>
</table>
</body>
</html>



Modifié par micron le 21/09/2012 11:50
007good
 Posté le 25/09/2012 à 18:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Micron !

Je regarde ca

007good
 Posté le 25/09/2012 à 20:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Micron,

Ta solution marche parfaitement !! :)

Sauf que j'arrive pas a la dédoubler :(

Lorsque j'essai de le double comme suit, la premiere marche bien, mais la deuxieme, ne marche pas; il m'affiche constament 0.

Je te met le lien, comme ca tu pourra avoir l'exemple concret de ce que j'ai fait :)

http://www.mvdracewear.fr/test/Shop/index.php



Modifié par 007good le 25/09/2012 20:06
007good
 Posté le 25/09/2012 à 20:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je n'ai toucher qu'au deux premier select ;)

micron
 Posté le 25/09/2012 à 21:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

J'ai trouvé pourquoi

Le problème c'est dans ton select 2

<select id="qte_pant_2" name="quantite_pant_2">
<option value="">------------</option>
<option value="">1</option>
<option value="">2</option>
<option value="">3</option>
<option value="">4</option>
<option value="">5</option>
<option value="">6</option>
<option value="">7</option>
</select>

Comme tu peux le voir, chaque option à une value vide. Il faut mettre une valeur comme t'as fais pour le select qte_pant_1 ;)

Sinon, pour ton code js c'est mieux de faire ceci :

<script>
$(function() {
$("select#qte_pant_1").change(function(){
pant_1 = $('option:selected', this).val()*330;

$("td#affiche_pant_1").text(pant_1);
});

$("select#qte_pant_2").change(function(){

pant_2 = $('option:selected', this).val()*330;

$("td#affiche_pant_2").text(pant_2);
});

});

</script>

mais, il a moyen de faire encore plus court que ca, je vais essayer de le faire



Modifié par micron le 25/09/2012 21:28
007good
 Posté le 25/09/2012 à 22:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Arf, tu as complétement raison.
J'avais mis tout "à vide" au début, et même pas fait attention à cela.

Un grand merci pour ton aide précieuse

micron
 Posté le 25/09/2012 à 22:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Mais de rien {#}

En tout cas j'ai trouvé le moyen de réduire la fonction.

Mais je me demande juste si le 330 est une valeur fixe ou variable ?

007good
 Posté le 25/09/2012 à 22:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Fixe ;)

micron
 Posté le 26/09/2012 à 07:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ok et bin si c'est fixe, voici alors le script

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
$(function() {
$("select.qte").change(function(){
a = $('option:selected', this).val()*330;
id = $(this).attr("id");
$("td#affiche_"+id).text(a);
});
});
</script>
</head>
<body>
<table>
<tr>
<td>1.</td>
<td>
<select name="couleurs_pant_1">
<option value="0">-------------</option>
<option value="1">Noir</option>
<option value="2">Blanc</option>
</select>
</td>
<td>
<select name="taille_pant_1">
<option value="0">------------</option>
<option value="1">XS</option>
<option value="2">S</option>
<option value="3">M</option>
<option value="4">L</option>
<option value="5">XL</option>
<option value="6">2XL</option>
<option value="7">3XL</option>
</select>
</td>
<td>
<select class="qte" id="qte_pant_1" name="quantite_pant_1">
<option value="0">------------</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
</td>
<td id="affiche_qte_pant_1">&nbsp;</td>
</tr>
<tr>
<td>2.</td>
<td>
<select name="couleurs">
<option value="">-------------</option>
<option value="">Noir</option>
<option value="">Blanc</option>
<option value="">Rouge</option>
<option value="">Vert</option>
<option value="">Bleu</option>
<option value="">Jaune</option>
<option value="">Multicouleur Blanc</option>
<option value="">Multicouleur Noir</option>
</select>
</td>
<td>
<select name="taille">
<option value="">------------</option>
<option value="">XS</option>
<option value="">S</option>
<option value="">M</option>
<option value="">L</option>
<option value="">XL</option>
<option value="">2XL</option>
<option value="">3XL</option>
</select>
</td>
<td>
<select class="qte" id="qte_pant_2" name="quantite_pant_2">
<option value="0">------------</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select>
</td>
<td id="affiche_qte_pant_2">&nbsp;</td>
</tr>
</table>
</body>
</html>

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
99,90 €Tablette Lenovo Tab M7 (HD, 4 coeurs, 2 Go RAM, 32 Go stockage, Android 11) à 99,90 €
Valable jusqu'au 29 Mai

La boutique en ligne Lenovo fait une promotion sur la tablette Lenovo Tab M7 qui passe à 99,90 € avec le code promo PUISSANCE alors qu'on la trouve ailleurs autour de 119 €.

Cette tablette possède un écran HD de 7 pouces IPS, un processeur quad-core MediaTek MT8166, 2 Go de mémoire vive, ainsi que 32 Go de stockage interne extensible par MicroSD. La tablette dispose du Bluetooth 5.0 et du WiFi AC. Elle offre une autonomie jusqu'à 10 heures. Le tout tourne sous Android 11. 


> Voir l'offre
16,92 €Clé USB 3.0 SanDisk Ultra Flair 128 Go à 16,92 €
Valable jusqu'au 29 Mai

Amazon fait une promotion sur la clé USB 3.0 SanDisk Ultra Flair 128 Go qui passe à 16,92 € alors qu'on la trouve ailleurs à plus de 25 €. Cette clé USB offre des débits jusqu'à 150 Mo/s.


> Voir l'offre
25,99 €Switch Gigabit Netgear GS308E 8 ports administrables à 25,99 €
Valable jusqu'au 28 Mai

Amazon fait une promotion sur le switch Gigabit Netgear GS308E 8 ports administrables qui passe à 25,99 € alors qu'on le trouve ailleurs à partir de 35 €. Ce switch est manageable : vous pouvez créer des sous réseaux isolés VLAN, limiter la bande passante par port, etc. La livraison est gratuite.


> Voir l'offre

Sujets relatifs
Erreur SQL ! select pwd from
variable et array
Tri dans un select
variable
lister avec 2 select sur 2 tables
Passage de variable et affichage
variable $mailheaders
souci de troncature sur variable double
margin-left dans résultat d'une variable php
Retour à la ligne variable affiché dans du javascr
Plus de sujets relatifs à variable d''un select MAJ en "directe"
 > Tous les forums > Forum Forum des Webmasters