Редактировать количество без перенаправления на другую страницу
-
13-12-2019 - |
Вопрос
У нас есть сайт рынка. У каждого продавца / поставщика есть свой счет ....
Мы отображаем список продавцов продукции, кол-во, SKU, цена ... и т. Д. В их счету ....
Мы используем этот код для отображения этих информации: 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>
.
Я не пробовал это, но вам может быть необходимо изменить согласно вашему требованию и вам нужно будет изменить файл контроллера.