Bouton + et - dasn panier

Signaler
Messages postés
27
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
26 septembre 2013
-
Messages postés
27
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
26 septembre 2013
-
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
{

for ($i=0 ;$i < $nbArticles ; $i++)
{

echo "<tr height='30'>";

echo "<td align='center' style='border-left:0px solid #2D4D7F;border-bottom:1px solid #2D4D7F;border-right:1px solid #2D4D7F;border-top:0px solid #2D4D7F'>
</td>";

echo "</tr>";
}
}
}
?>

2 réponses

Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
3
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
<?php echo $chn ?>
Messages postés
27
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
26 septembre 2013

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.");"