编辑数量而不重定向到另一个页面
-
13-12-2019 - |
题
我们有一个市场网站。每个卖方/供应商都有自己的帐户....
我们在他们的帐户中显示卖家产品,数量,sku,价格...等的列表....
我们正在使用此代码来显示这些信息: http://pastebin.com/cvqkxz2r我们在“qty”旁边有一个编辑按钮,如果我们单击该编辑按钮,它将重定向到另一个页面,而不是卖家编辑信息并保存。
<img src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>" data-type="<?php echo $products->getTypeId(); ?>" alt="<?php echo $helper->__('Edit')?>" title="<?php echo $helper->__('Edit')?>" class="mp_edit"/>
.
我们需要的是,如果我们单击“编辑”按钮,那么它应该在图像和更新和取消按钮中显示文本字段。
编辑问题:
我在图像上使用此代码进行onclick事件,调用javascript函数:
<img onclick="updateField(this, '. $product_id .'); return false"; src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"
.
javascript函数我在onclick的图像中定义。
<?php $url='Mage::getUrl('module_name/index/updateField/');' ?>
<script type="text/javascript">
function updateField(image, product_id)
{
new Ajax.Request('<?php echo $url ?>', {
method: 'post',
parameters: { id: fieldId, field: $(button).previous('input').getValue() }
});
}
</script>
.
我在控制器中做出函数,我在java脚本ajax url中定义。
public function updateFieldAction()
{
$fieldId = (int) $this->getRequest()->getParam('id');
$field = $this->getRequest()->getParam('field');
if ($fieldId) {
$model = Mage::getModel('modulename/model')->load($fieldId);
$model->setField($field);
$model->save();
}
}
.
设计文件= http://pastebin.com/hhwrn1gk &
controller file= http://pastebin.com/mbte2hcs
但我没有得到解决方案....
解决方案
我不确定这是否适合您。对于编辑的输入文本框,单击,您需要在下面按照单击更改代码。
<!-- edit qty -->
<td>
<?php echo (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($products)->getQty(); ?>
<input type="text" id="qty_<?php echo $product_id;?>" name="qty" value="<?php echo (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($products)->getQty(); ?>" style="display:none"/>
<span class="label wk_action">
<img onclick="updateField('<?php echo $product_id; ?>');return false;" src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"/>
</span>
</td>
<?php $url = Mage::getUrl('module_name/index/updateField/'); ?>
<script type = "text/javascript" >
var $wk_jq = jQuery.noConflict();
function updateField(product_id)
{
var qtyId = '#qty_'+product_id;
$wk_jq(qtyId).toggle()
$qty = $wk_jq(qtyId).val();
new Ajax.Request('<?php echo $url ?>', {
method: 'post',
parameters: {id: product_id, qty: $qty}
});
}
</script>
.
我没有尝试过,但您可能需要根据您的要求进行更改,并且需要更改控制器文件。