我有一个装满产品的页面,当点击“添加到购物车”按钮后页面重新加载时,我想在添加的产品旁边显示一个复选标记。 使用行和列计数我已经为每个产品分配了自己的类,例如
<div class = "location12">
当按下添加到购物车按钮时,我通过帖子传递了位置,这样我就可以知道按下按钮的哪个div,然后我可以将该数据用作标识符。 我可以通过引用div让页面滚动回到这个位置,但是我很难让图像只显示在那个产品上。它将显示在该产品上,然后显示在它之后的每个产品,因为它在第一次输出后每次循环时都会回显。
已添加到单个产品页面,但他们需要与此处相同的功能:http://confettibox.ch/1-NEWSTORE/index.php?main_page=product_info&cPath=576_578&products_id=1265&language=en
在此页面上: http://confettibox.ch/1-NEWSTORE/index.php?main_page=index&cPath=4_586
添加到购物车按钮提交在这里编码,你可以看到我在哪里添加了隐藏字段来传递div的id
$lc_button= '<div class="back">' . zen_draw_form_prod_list('cart_quantity', preg_replace($pattern, $replacement, $string), 'post', 'enctype="multipart/form-data"') . '</div><div class="back qty_bg"><input type="text" name="cart_quantity" value="' . (zen_get_buy_now_qty($listing->fields['products_id'])) . '" maxlength="6" size="4" /><br />' . zen_draw_hidden_field('products_id', $listing->fields['products_id']) . zen_draw_hidden_field('div_id', $colcount.$rows) . '</div><div class="forward">' . zen_image_submit('button_add.jpg', BUTTON_IN_CART_ALT) . '</form></div><br class="clearBoth">';
我在这里将$ _POST结果添加到会话变量中:
$_SESSION['location'] = (int)$_POST['div_id'];
然后使用:
if ($messageStack->size('listing') > 0 && $_SESSION['location'] == $colcount.$rows) {
这样,messageStack输出(成功复选标记)只会显示该产品...除了显示后面的所有内容:|
使用以下代码输出产品:
if (PRODUCT_LISTING_LAYOUT_STYLE == 'columns') {
$lc_text = implode('<br />', $product_contents);
$list_box_contents[$rows][$column] = array('params' => 'class="centerBoxContentsProducts centeredContent back featured'. $column .'"' . ' ' . 'style="width:235px;"',
'text' => $lc_text = '
<div class="prod_table">
<div class="prod_image"><a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id']) > 0 ? zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . zen_image(DIR_WS_IMAGES . $listing->fields['products_image'], $listing->fields['products_name'], IMAGE_PRODUCT_LISTING_WIDTH, IMAGE_PRODUCT_LISTING_HEIGHT, 'class="listingProductImage"') . '</a></div>
<div class="prod_name"><a href="' . zen_href_link(zen_get_info_page($listing->fields['products_id']), 'cPath=' . (($_GET['manufacturers_id'] > 0 and $_GET['filter_id']) > 0 ? zen_get_generated_category_path_rev($_GET['filter_id']) : ($_GET['cPath'] > 0 ? zen_get_generated_category_path_rev($_GET['cPath']) : zen_get_generated_category_path_rev($listing->fields['master_categories_id']))) . '&products_id=' . $listing->fields['products_id']) . '">' . $listing->fields['products_name'] . '</a></div>
<div class="prod_price back">'. zen_get_products_display_price($listing->fields['products_id']) .'</div>
<div class = "location'. $colcount.$rows .'">'.$success.' </div>
<div class="prod_content forward">'. $the_button .'</div>
</div>
');
$column ++;
$colcount=$column;
if ($column >= PRODUCT_LISTING_COLUMNS_PER_ROW) {
$column = 0;
$rows ++;
}
}
// End of Code fragment for Column Layout (Grid Layout) option in add on module
$listing->MoveNext();
$ success是我想要输出支票的地方。
如何才能将成功消息回显到'location12'? 它甚至可能吗?
答案 0 :(得分:1)
您还没有发布太多代码,但我会尝试回答。 你可以用Javascript或PHP来做。 使用Javascript / jQuery,您可以设置任何div所需的背景图像:
$('.location12').css("background-image", "url(/myimage.jpg)");
使用PHP,您需要计算迭代次数,并仅在$ index == 12上回显图像。 我不知道你是否正在使用foreach,for,while或任何其他方法。 假设它是foreach循环,您可以执行以下操作:
$index = 1;
foreach ($products as $product) {
if ($index == 12) {echo "<img src=''/>"}
$index++;
}
如您所见,jQuery方法更容易。
希望这有帮助!