Plusieurs checkbox = un seul id(si different)
Bonjour,
Dans le cadre d'un projet e-commerce,
J'ai plusieurs checkbox (ce sont des articles stockés dans mysql).
J'ai un bouton ajouter par article, qui récupère l'id, le nom, le prix, et quantite=1.
Jusqu'ici tout est OK
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
| <?php
include('database_connection.php');
$query = "SELECT * FROM tbl_product WHERE category = 'PAINS' ORDER BY id DESC";
$statement = $connect->prepare($query);
if($statement->execute())
{
$result = $statement->fetchAll();
$output = '';
foreach($result as $row)
{
$output .= '
<label class="checkbox">
<input type="hidden" name="quantity" id="quantity' . $row["id"] .'" value="1" />
<input type="checkbox" name="name" id="name'.$row["id"].'" value="'.$row["name"].'"/>
<span>'.$row["name"].'</span>
<input type="hidden" name="hidden_price" id="price'.$row["id"].'" value="'.$row["price"].'" />
</label><input type="button" name="add_to_cart" id="'.$row["id"].'" class="button add_to_cart" value="Ajouter" /><div class="tooltip" style="display:none;">Article ajoute</div>
';
}
echo $output;
}
?> |
Maintenant, vu que j'ai plusieurs checkbox, je souhaite les combiner pour n'obtenir qu'un seul nom et prix.
Pour ma part, j'ai décidé de les stocker dans un textarea (ca fonctionne) et de récupérer sa value en tant que nouveau nom de l'article.
Pour le prix j'y suis pas encore mais j'ai l'intention de faire un autre textarea sur le meme schema (ou alors explode) (me reste a additionner les valeurs qui seront dedans, je pense m'en sortir mais je n'ai pas encore planché la dessus).
C'est là que ça bloque, et je ne vois meme pas comment m'en sortir, je dois meme carrément me tromper le méthode dès le départ :ptdr:
Ce serait sympa si vous pouviez jeter un oeil et me dire ce que vous en pensez,
Merci d'avance
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
| //action.php
session_start();
if(isset($_POST["action"]))
{
if($_POST["action"] == "add")
{
if(isset($_SESSION["shopping_cart"]))
{
$is_available = 0;
foreach($_SESSION["shopping_cart"] as $keys => $values)
{
if($_SESSION["shopping_cart"][$keys]['product_id'] == $_POST["product_id"])
{
$is_available++;
$_SESSION["shopping_cart"][$keys]['product_quantity'] = $_SESSION["shopping_cart"][$keys]['product_quantity'] + $_POST["product_quantity"];
}
}
if($is_available == 0)
{
$item_array = array(
'product_id' => $_POST["product_id"],
'product_name' => $_POST["product_name"],
'product_price' => $_POST["product_price"],
'product_quantity' => $_POST["product_quantity"]
);
$_SESSION["shopping_cart"][] = $item_array;
}
}
else
{
$item_array = array(
'product_id' => $_POST["product_id"],
'product_name' => $_POST["product_name"],
'product_price' => $_POST["product_price"],
'product_quantity' => $_POST["product_quantity"]
);
$_SESSION["shopping_cart"][] = $item_array;
}
} |
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
| // AJOUTER
$(document).on('click', '.add_to_cart', function(){
var product_id = $(this).attr("id");
var product_name = $('#name'+product_id+'').val();
var product_price = $('#price'+product_id+'').val();
var product_quantity = 1;
var action = "add";
if(product_quantity > 0)
{
$.ajax({
url:"action.php",
method:"POST",
data:{product_id:product_id, product_name:product_name, product_price:product_price, product_quantity:product_quantity, action:action},
success:function(data)
{
load_cart_data();
}
});
}
else
{
alert("Please Enter Number of Quantity");
}
}); |
Code:
1 2 3 4
|
<input type="checkbox" name="name" id="name'.$row["id"].'" value="'.$row["name"].'"/>
<textarea id="name" name="name" value="" class="get_checked"></textarea>
<input type="button" name="add_to_cart" id="ici je sais pas quoi mettre du coup? PARCE QUE IL FAUT NOUVEL ID A CHAQUE AJOUT SI NOM DIFFERENT" class="button add_to_cart" value="Ajouter" /> |
J'ai essayé dans tout les sens, mais j'obtiens pas ce que je veux (que le premier nom, et puis vu que l'id est le meme, les ajouts s'écrasent...)
http://beepbeep74.free.fr/chop/index2.php