Editar cantidad sin redirigir a otra página.
-
13-12-2019 - |
Pregunta
Tenemos un sitio de mercado. Cada vendedor / proveedor tiene su propia cuenta ...
Estamos mostrando la lista de productos de vendedores, CANTIDAD, SKU, PRECIO ... ETC en su cuenta ...
Estamos utilizando este código para mostrar esas información: http://pastebin.com/cvqkxz2r
Tenemos un botón de edición junto a "qty", si hacemos clic en ese botón de edición, su redirección a otra página y que el vendedor edita la información y guárdelo.
Estamos utilizando el siguiente código para editar:
<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"/>
Lo que necesitamos es si hacemos clic en el botón "Editar", entonces debería mostrar el campo de texto como en la imagen y actualizar y cancelar el botón a continuación.
Pregunta editada :
Estoy usando este código para el evento OnClick en la imagen y llame a la función Javascript:
<img onclick="updateField(this, '. $product_id .'); return false"; src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"
Función JavaScript que definí en ONCLICK DE LA IMAGEN.
<?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>
Hago la función en el controlador que definí en 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();
}
}
diseño de diseño= http://pastebin.com/hhwrn1gk &
Controller File= http://pastebin.com/mbte2hcs
pero no estoy recibiendo solución ...
Solución
No estoy seguro de si esto funcionará para usted o no.Para el cuadro de texto de entrada en Editar clic, deberá cambiar el código según lo siguiente.
<!-- 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>
No lo intenté, pero es necesario cambiar de acuerdo con su requisito y también tendrá que cambiar en el archivo del controlador.