Обновление количества не работает


Мы используем следующий код на странице file1.phtml для обновления количества, он работает нормально.

<label class="required" for="qty"><em>*</em><?php echo $helper->__('Quantity')?></label>
<div class="input-box">
<input type="text" name="qty" id="qty" value="<?php echo intval($assinproducts->getQty()) ?>" 
class="required-entry validate-zero-or-greater input-text"/>
</div>

Полный код файла1.phtml => http://pasted.co/7e88d0b2

Мы используем Этот код на странице file2.phtml для обновления количества, он не работает. означает, что как только мы нажимаем кнопку обновить, она показывает обновленное значение, но как только мы обновляем страницу, она показывает только старое значение.

Полный код файла 2.phtml => http://pasted.co/748ad7ac

Поэтому мы решили использовать код, присутствующий в файле 2.phtml в файле 1.phtml, для обновления количества, поэтому мы используем следующий код:

Пхтмл

<span class="label qty" id="valueqty_<?php echo $assinproducts->getId(); ?>">
        <?php echo intval($assinproducts['qty']); ?>
    </span>

    <input type="text" id="qty_<?php echo $assinproducts->getId(); ?>"
           onkeydown="validateNumbers(event)"
           name="stock" value="<?php echo intval($assinproducts['qty']); ?>"
           style="display:none;"/>     

    <span class="label wk_action" id="edit_link_<?php echo $assinproducts->getId(); ?>">
        <img onclick="showField('<?php echo intval($assinproducts->getQty()) ?>'); return false;"
             src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"/>
    </span>

    <p id="updatedqty_<?php echo $assinproducts->getId(); ?>"
       style="display:none;color:red;">Updated</p><br/>

    <button id="update_button_<?php echo $assinproducts->getId(); ?>"
            class="button wk_mp_btn1"
            onclick="updateField('<?php echo $assinproducts->getId(); ?>',<?php echo intval($assinproducts->getQty()) ?>); return false;"
            style="display:none">
        <span>
            <span style="font-size:12px;"><?php echo $helper->__('Update') ?></span>
        </span>
    </button>

Сценарий

function showField(product_id)
    {
        var qtyId           = '#qty_'+ product_id;
        var editLink        = "#edit_link_"+ product_id;
        var updateButton    = "#update_button_"+ product_id;
        var resetButton     = "#reset_button_"+ product_id;

        $wk_jq(qtyId).show();
        $wk_jq(editLink).hide();
        $wk_jq(updateButton).show();
        $wk_jq(updateButton).prop('disabled', false);//just in case
        $wk_jq(resetButton).show();

        return false;
    }



    function updateField(product_id,assignqty)
    {

        //alert("Hello! I am an alert box!!");
        var qtyId           = '#qty_'+ product_id;
        var valueId         = '#valueqty_'+ product_id;
        var updatedqty      = '#updatedqty_'+ product_id;
        var editLink        = "#edit_link_"+ product_id;
        var updateButton    = "#update_button_"+ product_id;
        var resetButton     = "#reset_button"+ product_id;
        var url             = '<?php echo Mage::getUrl('marketplace/marketplaceaccount/updateField/')?>';

        $wk_jq(qtyId).toggle();
        $wk_jq(editLink).hide();
        $wk_jq(updateButton).show();
        $wk_jq(resetButton).show();

        $qty = $wk_jq(qtyId).val();
        jQuery(valueId).html($qty);
        hideReset(product_id);

        var tmpQty = assignqty+parseInt($qty) ;
        new Ajax.Request(url, {
            method: 'post',
            parameters: {id: product_id, qty: tmpQty},
            onComplete: function (transport) {
            //  alert(tmpQty);
                jQuery(priceId).val($price);
        jQuery(updatedqty).show().delay(2000).fadeOut();
                $updateButton.prop('disabled', false);
            }
        });
    }

Controllers.php

public function updateFieldAction(){
        $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
     echo   $id= $this->getRequest()->getParam('id');
        $selllermpassignproduct=Mage::getModel('mpassignproduct/mpassignproduct')->getAssignProDetails($id);
        $customerid=Mage::getSingleton('customer/session')->getCustomerId();
        $collection_product = Mage::getModel('marketplace/product')->getCollection()->addFieldToFilter('mageproductid',array('eq'=>$id))->addFieldToFilter('userid',array('eq'=>$customerid));
        //Mage::getSingleton('core/session')->setEditProductId($id);
         $assignqty=isset($selllermpassignproduct['assignqty'])?$selllermpassignproduct['assignqty']:0;
        $newqty=$this->getRequest()->getParam('qty')+$assignqty;
        $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($id);
        $stockItem->setData('manage_stock', 1);
        $stockItem->setData('qty', $newqty);
        echo $newqty; exit();
        $stockItem->save();

        $response['message'] = 'Your Product Is Been Sucessfully Updated';
        $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response));
        //Mage::getSingleton('core/session')->addSuccess(Mage::helper('marketplace')->__('Your Product Is Been Sucessfully Updated'));
      }

Что я сделал вместо <?php echo $assinproducts->getId(); ?>, я попытался <?php echo intval($assinproducts->getQty()) ?>

Но теперь, когда мы нажимаем кнопку изменить, она не работает. раньше, когда мы нажимали на кнопку редактирования, она отображалась следующим образом:

enter image description here enter image description here

Author: Baby in Magento, 2016-02-03

1 answers

Пожалуйста, попробуйте приведенный ниже код, надеюсь, это поможет.

Phtml

<span class="label qty" id="valueqty_<?php echo $assinproducts->getId(); ?>">
    <?php echo intval($assinproducts->getQty()); ?>
</span>

<input type="text" id="qty_<?php echo $assinproducts->getId(); ?>"
       onkeydown="validateNumbers(event)"
       name="stock" value="<?php echo intval($assinproducts->getQty()); ?>"
       style="display:none;"/>     

<span class="label wk_action" id="edit_link_<?php echo $assinproducts->getId(); ?>">
    <img onclick="showField('<?php echo intval($assinproducts->getId()) ?>'); return false;"
         src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"/>
</span>

<p id="updatedqty_<?php echo $assinproducts->getId(); ?>"
   style="display:none;color:red;">Updated</p><br/>

<button id="update_button_<?php echo $assinproducts->getId(); ?>"
        class="button wk_mp_btn1"
        onclick="updateField('<?php echo $assinproducts->getId(); ?>',<?php echo intval($assinproducts->getQty()) ?>); return false;"
        style="display:none">
    <span>
        <span style="font-size:12px;"><?php echo $helper->__('Update') ?></span>
    </span>
</button>

Контроллер

public function updateFieldAction()
{
    $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
    $productId = $this->getRequest()->getParam('id');
    $selllermpassignproduct = Mage::getModel('mpassignproduct/mpassignproduct')->getAssignProDetails($productId);
    $customerId = Mage::getSingleton('customer/session')->getCustomerId();
    $collectionProduct = Mage::getModel('marketplace/product')->getCollection()->addFieldToFilter('mageproductid',array('eq'=>$productId))->addFieldToFilter('userid',array('eq'=>$customerId));
    $assignQty = isset($selllermpassignproduct['assignqty']) ? $selllermpassignproduct['assignqty'] : 0;
    $newQty = $this->getRequest()->getParam('qty') + $assignqty;
    $qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
    $qtyStock->setProductId($id)->setStockId(1);
    $qtyStock->setData('is_in_stock', true); 
    $savedStock = $qtyStock->save();
    $qtyStock->load($savedStock->getId())->setQty($newQty)->save();
    $qtyStock->setProductId($id)->setStockId(1);
    $qtyStock->setData('is_in_stock', true); 
    $savedStock = $qtyStock->save();

    //$stockItem->setData('manage_stock', 1);
    //$stockItem->setData('qty', $newqty);
    //$stockItem->save();

    $response['message'] = 'Your Product Is Been Sucessfully Updated';
    $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response));
    //Mage::getSingleton('core/session')->addSuccess(Mage::helper('marketplace')->__('Your Product Is Been Sucessfully Updated'));
}
 1
Author: Toan Nguyen, 2016-04-19 10:41:10