Remplir un panier en js sans bouton submit
Bonjour à tous et à toutes,
Je cherche à faire un panier en js pour éviter les boutons submit comme sur ce site https://www.cartouche-vide.fr/2-tari...es_encre_vides
J'ai la liste de mes produits en php j'ai le petit code js qui me permet de calculer et afficher le prix de rachat mais pour l'instant pour une seul référence car je ne vois pas comment récupérer les informations (id, prix) pour définir les id des input et le prix d'achat pour le calcul en js.
Voici mon code actuel
Code:
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
| <?php
$nbr_prod = $bdd->query('SELECT * FROM '.TABLE[8].' ORDER BY marque ASC');
while($resultats = $nbr_prod->fetch()) //boucle affichant les résultats
{
$liste_produits[$resultats['marque']][] = $resultats;
}
$nbr_prod->closeCursor();
echo'<div id="contenu">';
foreach ($liste_produits as $key => $resultat_values)
{
echo'<div class="bandeau_marque">
<div class="text_marque">'.stripslashes(trim($key)).'</div>
<div class="bt_marque" id="bouton_detail'.stripslashes(trim($key)).'" onclick="afficher_detail(\'detail'.stripslashes(trim($key)).'\')"><img src="'.VARIABLE[0].'/images/haut.png" alt="Afficher la liste des cartouches rachetées" loading="lazy"/></div>
</div>';
echo'<div id="detail'.$key.'">';
echo'<div class="ligne_gr_ecran"><div class="col_num_article">Référence</div><div class="col_desc">Description</div><div class="col_tarif">Prix</div><div class="col_qte">Qte</div></div>';
foreach($resultat_values as $cle => $values)
{
echo'<div class="ligne_article"><div class="col_num_article"><strong class="txt_pt_ecran">Référence : </strong>'.stripslashes(trim($values['num_article'])).'</div>
<div class="col_desc"><strong class="txt_pt_ecran">Description : </strong>'.nl2br(stripslashes(trim($values['description_article']))).'</div>
<div class="col_tarif"><strong class="txt_pt_ecran">Prix : </strong>'.trim(number_format($values['tarif_rachat'],2,'.',' ')).' </div>';
echo'<div class="col_qte">';
echo'<form method="POST" action="'.VARIABLE[0].'/ajout-produit.html" class="form_listing">';
echo'<input placeholder="Qte" type="text" name="qte"/>';
echo'<input type="submit" value="Valider"/><input name="id" type="hidden" value="'.$values['id'].'">';
echo'</form>';
echo'</div></div><hr class="sexy_line"/>';
}
echo '</div>';
}
echo'</div>';
echo'<pre>';
print_r ($liste_produits);
echo'</pre>';
?> |
Voici mon tableau
Code:
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| Array
(
[BROTHER] => Array
(
[0] => Array
(
[id] => 53
[0] => 53
[marque] => BROTHER
[1] => BROTHER
[num_article] => 223
[2] => 223
[description_article] => BROTHER 223 - Origine VIDE
[3] => BROTHER 223 - Origine VIDE
[nom_image] =>
[4] =>
[tarif_rachat] => 0.10
[5] => 0.10
)
)
[CANON] => Array
(
[0] => Array
(
[id] => 1
[0] => 1
[marque] => CANON
[1] => CANON
[num_article] => CVC37
[2] => CVC37
[description_article] => VIDE CANON PG37 BLACK
[3] => VIDE CANON PG37 BLACK
[nom_image] =>
[4] =>
[tarif_rachat] => 0.50
[5] => 0.50
)
[1] => Array
(
[id] => 2
[0] => 2
[marque] => CANON
[1] => CANON
[num_article] => CVC38
[2] => CVC38
[description_article] => VIDE CANON CL38
[3] => VIDE CANON CL38
[nom_image] =>
[4] =>
[tarif_rachat] => 0.50
[5] => 0.50
)
)
[HP] => Array
(
[0] => Array
(
[id] => 27
[0] => 27
[marque] => HP
[1] => HP
[num_article] => CVH15
[2] => CVH15
[description_article] => VIDE HP C6615 POUR HP15
[3] => VIDE HP C6615 POUR HP15
[nom_image] =>
[4] =>
[tarif_rachat] => 1.00
[5] => 1.00
)
[1] => Array
(
[id] => 28
[0] => 28
[marque] => HP
[1] => HP
[num_article] => CVH301BV1
[2] => CVH301BV1
[description_article] => VIDE HP CH561 POUR HP301 BLACK - NOUVELLE VERSION(V1)
[3] => VIDE HP CH561 POUR HP301 BLACK - NOUVELLE VERSION(V1)
[nom_image] =>
[4] =>
[tarif_rachat] => 2.50
[5] => 2.50
)
)
) |
Voici mon js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <script>
function Function_calcul() {
var nbr_article = document.getElementById("input1").value;
var prix_achat = Number(2);//à remplacer par le prix d'achat [tarif_rachat]
var total = (Number(nbr_article) * Number(prix_achat));
document.getElementById("total_article").innerHTML = total;
}
</script>
<ul>
<li class="default" id="form_amount_li">Nbr article
<input id="input1" maxlength="8" name="amount" type="text" value="" onkeyup="Function_calcul()"/>
</li>
</ul>
<span id="total_article"></span> |
Il faudrait que je récupère [id] de chaque produit en js pour remplacer input1 de cette ligne (var nbr_article = document.getElementById("input1").value;) par le numéro unique du produit mais je ne vois pas comment faire.
Est ce que quelqu'un peut m'aider ?
Merci d'avance.
Voici l'url pour voir en ligne mon projet https://sergiocrea.fr/test.html