我们有一个市场网站。每个卖方/供应商都有自己的帐户....

我们在他们的帐户中显示卖家产品,数量,sku,价格...等的列表....

http://prntscr.com/8vgul0

我们正在使用此代码来显示这些信息: 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>
.

我没有尝试过,但您可能需要根据您的要求进行更改,并且需要更改控制器文件。

许可以下: CC-BY-SA归因
scroll top