我正在尝试将 javascript 放入 php 中的 foreach 语句中。问题是我只得到一个元素。 (因为php是服务器端,而javascript是客户端)。
这是我的代码:
<?php foreach($this->getItems() as $item): ?>
<tr>
<td class="name">
<?php echo
$this->getLayout()->createBlock('core/template')->setTemplate('attributes.phtml')->toHtml(); ?>
<?php echo $item->getName(); echo '<br>';?>
<div class="toggle-inhalt">Beschreibung</div>
<div class="beschreibung-checkout slide-up"><?php
$_product = $item->getProduct();
$pid = $_product->getId();
$product = Mage::getModel('catalog/product')->load($pid);
/* getting some attributes */
echo $beschreibung = $product->getData('beschreibung');
?>
</div>
<script>
(function(document) {
"use strict";
var hidden_el = document.getElementsByClassName("beschreibung-
checkout"),
control_el = document.getElementsByClassName("toggle-inhalt");
if (hidden_el.length < 1 || control_el.length < 1) {
return;
}
// Get the elements
hidden_el = hidden_el[0];
control_el = control_el[0];
control_el.onclick = function() {
var element_classes = (" "+hidden_el.className+" ").replace(/[\n
\t\r]/g, " "),
remove_class = "slide-down",
add_class = "slide-up",
is_showing = element_classes.indexOf(" "+remove_class+" ")
> -1;
if ( ! is_showing) {
// Switch variable values
remove_class = [add_class, add_class = remove_class][0];
}
// Remove the previous class (if present) and add the new class
hidden_el.className = (element_classes.replace(" "+remove_class+" ",
"") + " "+add_class+" ").trim();
return false;
};
})(document);
</script>
.........
这只是在 div 元素上进行简单的上下滑动。 问题是:我想获取每个产品的名称和描述。
举个例子:这张图片:http://bengar.de/media/magentocheckout.png 。第一个产品(L-240)的描述显示没有任何问题。但不适用于第二个产品(Haltegriff)!
所以我认为我需要 ajax 来实现这个或一个数组。有人可以帮忙吗?
最佳答案
我建议根本不要重复你的 JavaScript。
只需向所有元素添加一个类,也许还可以向每个 div 添加一个自定义属性,然后使用 jQueryeach 函数。
关于foreach php 中的 Javascript - Magento,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27383016/