Редактировать количество без перенаправления на другую страницу

magento.stackexchange https://magento.stackexchange.com//questions/87659

Вопрос

У нас есть сайт рынка. У каждого продавца / поставщика есть свой счет ....

Мы отображаем список продавцов продукции, кол-во, SKU, цена ... и т. Д. В их счету ....

http://prntscr.com/8vgul0

Мы используем этот код для отображения этих информации: http://pastebin.com/cvqkxz2r .

У нас есть кнопка редактирования рядом с «qte», если мы нажмем на эту кнопку редактирования, ее перенаправляющую на другую страницу и, чем продавец редактируют информацию и сохраните ее.

Мы используем следующий код для редактирования:

<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"/>
.

Что нам нужно, это если мы нажмем кнопку «Редактировать», то она должна отображать текстовое поле, как и на кнопке изображения и обновления и отмены ниже.  Введите описание изображения здесь

Отредактированный вопрос :

Я использую этот код для Enclick Event On Image и вызовите функцию 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 Script 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/hhhrn1gk &

Файл контроллера= 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 с атрибуция
Не связан с magento.stackexchange
scroll top