carolet
Messages postés26Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention26 septembre 2013
-
17 févr. 2011 à 09:43
carolet
Messages postés26Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention26 septembre 2013
-
25 févr. 2011 à 11:01
Bonjour,
Besoin d'aide svp : J'ai un panier d'achat dans lequel je voudrais ajouter des boutons + et - pour modifier la quantité.
Ca fonctionne, seulement ça ne met à jour que la première ligne de mon panier, car je n'arrive pas à récupérer dans ma fonction javascript la référence $i de la ligne concernée.
Mon script :
<script type="text/javascript">
function incInput(j) {
var value = parseInt(document.getElementById('q').value, 10);
value += j;
document.getElementById('q').value = value;
}
</script>
<?php
if (creationPanier())
{
$nbArticles=count($_SESSION['panier']['libelleProduit']);
if ($nbArticles <= 0)
echo "<tr><td align='center' style='border-left:0px solid #2D4D7F;border-bottom:0px solid #2D4D7F;border-right:0px solid #2D4D7F;border-top:0px solid #2D4D7F'> Votre panier est vide !
</ td></tr>";
else
{
007Julien
Messages postés276Date d'inscriptionmercredi 22 septembre 2010StatutMembreDernière intervention 8 janvier 20144 17 févr. 2011 à 18:46
Il suffit de numéroter les inputs, puis de les appeler par leur numéro en précisant le delta à ajouter !
Par ailleurs le code serait beaucoup plus clair en utilisant les CSS pour toutes les indications de style et en construisant la chaîne en PHP pour l'incruster en une seule fois dans le HTML.
Sauf erreur de ma part, cela pourrait donner quelque chose comme cela (voir l'id des inputs et l'appel par onclick).
<?php
$chn='';
if (creationPanier()){
$nbArticles=count($_SESSION['panier']['libelleProduit']);
if ($nbArticles <= 0)
$chn.='<tr><td align="center">';
$chn.='Votre panier est vide !
</ td></tr>';
else for ($i=0 ;$i < 10 ; $i++){
$chn.='<tr height="30"><td align="center">';
$chn.='';
$chn.='</td></tr>';}
}
?>
Avec un code javascript quelque peu modifié
function incInput(n,d) {
document.getElementById('q'+n).value += parseInt(d,10);
}
Puis enfin, une seule incrustation de PHP dans le HTML
carolet
Messages postés26Date d'inscriptionmercredi 9 avril 2003StatutMembreDernière intervention26 septembre 2013 25 févr. 2011 à 11:01
Merci.
Voilà ce que j'ai fait et qui fonctionne très bien :
<script type="text/javascript">
function incInput(j,indice) {
var value = parseInt(document.getElementById('q'+indice).value, 10);
value += j;
document.getElementById('q'+indice).value = value;
}
</script>
L'id du champ : id="q".$i.""
L'appel de la fonction : onclick="incInput(1,".$i.");"