저는 작은 장바구니를 만들고 있습니다. 현재 결제 페이지로 진행하기 전에 각 제품의 재고를 확인하는 결제 기능을 구현하려고합니다.json을 사용하여 PHP에 jquery 배열을 전달하십시오.
이 while 루프가 "shoppingCart가"표의 각 행에 표시되어 숨겨진 입력 버튼의 값은 제품 ID는 그 대응로드되고 그 동안 루프
while ($row = $result->fetch()) {
echo '<table class="cart-row" cellspacing="0" cellpadding="0" width="100%">';
echo '<tbody>';
echo '<tr>';
echo '<td width="75"><img border="0" width="59px" height="78px" title="" alt="" src=' . $row["ImagePath"] .'></td>';
echo '<td width="203"><span class="itemElements itemName">'. $row["Name"] .'</span></td>';
echo '<td width="203"><input type="submit" class="btnMinus linkbtnType2" value="-"><input type="submit" class="btnPlus linkbtnType2" value="+"></td>';
echo '<td width="135"><span class="qtyNum">('. $row["Qty"] .')</span> <br />';
echo '<input type="hidden" name="ProductId" class="ProductId" value='.$row["ProductId"].' />';
echo '<span class="qtyRemoveLink"><input type="submit" class="btnRemove linkbtn" value="Remove"></td>';
echo '<td width="180"><span class="itemElements orderStatus">In Stock Usually dispatched within 24 hours</span></td>';
echo '<td width="175" class="itemPriceRow"><span id="itemPrice">€ '. $row["Price"]* $row["Qty"] .'</span></td>';
echo '</tr>';
echo '</tbody>';
echo '</table>';
echo '<br>';
}
가 행을 반환.
이제이 jQuery 메서드가 페이지의 모든 procuctId 값을 읽고 배열에 저장해야합니다.
$('#btnCheckout').click(function() {
var productId = new Array();
var j = 0;
$(".ProductId").each(function() {
productId[j] == $(this).val();
j++;
});
$.ajax({
type: "POST",
url: "functions/checkProductStock.php",
data: {
productId: JSON.stringify(productId)
},
success: function (msg) {
alert(msg);
}
})
})
이 방법은 다음 PHP 방법에 해당 값을 전달합니다
<?php include "../config.php" ?>
<?php
$productIds = json_decode($_POST['productId']);
var_dump($productIds);
//foreach loop that iterate through an array containing the product IDs and exexcutes the below method.
foreach ($productIds as $productId)
{
$CartDAL = new CartDAL();
$result = $CartDAL->get_ProductInCartById($productId, $_SESSION["username"]);
$result = $ProductsDAL->get_ProductById($productId);
$rowProduct = $result->fetch();
//Get Product Quatity Form Cart
$qty = $row["Qty"];
//Get Product Stock
$stock = $rowProduct["AvailableStock"];
if($qty <= $stock)
{
$CartDAL->remove_ProductInCart($productId, $_SESSION["username"]);
}
else
{
echo $rowProduct["Name"].' is out of stock!';
}
}
?>
을 어떻게 든 productId=%5B%5D
이다 나는 방화범이 메서드에 전달되는 유일한 값을 사용하고 있습니다 때. 참고 전달되어야하는 값은 1과 2입니다. 잘못된 값을 읽고 배열에서 전달하는 이유는 무엇입니까? 아니면 위의 방법으로 실수를 했나요?
생성 된 HTML을 생성하는 PHP 대신 표시 할 수 있습니까? – lonesomeday
qty
HTML 테이블을 생성하는 PHP입니다. HTML이 훨씬 더 유용 할 것입니다. ! – lonesomeday