在主页面,使用Ajax,我将产品添加到会话中,然后循环显示,但是得到了额外的一行,有人怀疑这是数组的0元素,但并不总是转出在列表的顶部......我正在等待问题的版本和解决方案!
//js, если нужно
$(document).ready(function() {
$(".good a").click(function(){
var parent = $(this).parent() ;
var count = parent.find('.string').val();
var id = parent.find('.string').attr('id');
var price = parent.find('.string').attr('price');
var item_name = parent.find('.string').attr('item_name');
var total_price = $('.totalprice').val();
$.ajax({
type: "POST",
url: "page2.php",
data: {good_id: id,
count: count,
price: price,
item_name: item_name},
success: function(data){alert(data+'Товар добавлен')}
});
return false;
});
});
//не первой странице
<div class="good" >
<input class="string" type="text" price="<?=$row['price']?>" id="good_<?=$row['id']?>" item_name="<?=$row['name']?>" >
<a href="#">В корзину</a>
</div>
// на второй странице
<?php
session_start();
$_SESSION['item_name'][$_POST['good_id']]=$_POST['item_name'];
$_SESSION['count'][$_POST['good_id']]=$_POST['count'];
$_SESSION['price'][$_POST['good_id']]=$_POST['price'];
//$_SESSION['total_price']=$_POST['total_price'];
?>
<div class="cart_layout" style="display:flex; justify-content:space-around;">
<div class="item_name" style="background-color:green;">
<strong>НАИМЕНОВАНИЕ ТОВАРА:</strong><br>
<?php
foreach($_SESSION['item_name'] as $item_name){
echo($item_name)." <br>";
}
?>
</div>
<div class="count">
<strong>КОЛЛИЧЕСТВО:</strong><br>
<?php
foreach($_SESSION['count'] as $count){
echo $count." л. <br>";
}
?>
</div>
<div class="total_count">
<strong>СУММА:</strong><br>
<?php
$z=array_map(function ($el1, $el2) {
return $el1 * $el2;
},
$_SESSION['count'], $_SESSION['price']);
foreach ($z as $total) {
echo $total." <br>";
}
?>
</div>
</div>

代码的级别当然还有很多不足之处。切换到框架:<
如果您在那里捕获了一个空数组,那么我认为这将适合您:
然后
//$_SESSION['total_price']=$_POST['total_price'];粘贴:很可能您会立即加载第二页,并且那里有
$_POST['good_id']一个 empty-zhezh,因此是空元素,那么您可以使用此选项:之后
session_start();: