Question

Nous avons un site de marché. Chaque vendeur / vendeur a son propre compte ....

Nous affichons la liste des vendeurs produits, Qté, SKU, prix ... etc. dans leur compte ...

http://prntscr.com/8vgul0

Nous utilisons ce code pour afficher ces informations: http://pastebin.com/cvqkxz2r

Nous avons un bouton d'édition à côté de "Qté", si nous cliquons sur ce bouton d'édition, sa redirection à une autre page et que le vendeur modifier les informations et le sauvegarder.

Nous utilisons le code suivant pour éditer:

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

Ce dont nous avons besoin, c'est si nous cliquons sur le bouton "Modifier", il doit afficher le champ de texte comme dans le bouton Image et mise à jour et d'annulation ci-dessous.  Entrez la description de l'image ici

Question éditée :

J'utilise ce code pour ONCLICK Event sur l'image et appelez la fonction JavaScript:

<img onclick="updateField(this, '. $product_id .'); return false"; src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"

fonction JavaScript que j'ai définie dans OnCliquez sur l'image.

<?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>

Je fais la fonction dans le contrôleur que je définis dans 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();
    }
}

Fichier de conception= http://pastebin.com/hhwrn1gk &

Fichier de contrôleur= http://pastebin.com/mbte2hcs

Mais je ne reçois pas de solution ....

Était-ce utile?

La solution

Je ne suis pas sûr que cela fonctionnera pour vous ou non.Pour la zone de texte d'entrée sur Modifier, cliquez, vous devez modifier le code selon ci-dessous.

    <!--    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>

Je n'ai pas essayé, mais vous avez peut-être besoin de changer conformément à votre exigence et devrez également modifier le fichier de contrôleur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top