別のページにリダイレクトせずに数量を編集します
-
13-12-2019 - |
質問
マーケットプレイスサイトを持っています。各売り手/ベンダーは自分のアカウントを持っています....
私たちは彼らのアカウントに売り手の商品、数量、sku、価格...などのリストを表示しています....
このコードを使用してこれらの情報を表示しています。 http://pastebin.com/cvqkxz2r
「QTY」の横にある編集ボタンを持っていますが、その編集ボタンをクリックすると、別のページにリダイレクトされ、売り手よりも情報を編集して保存してください。
編集する次のコードを使用しています。
<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"/>
.
「編集」ボタンをクリックすると、画像のようにテキストフィールドが表示され、下のテキストフィールドが表示され、カンセルボタンをクリックします。
編集された質問:
イメージ上のオンクリックイベントのためにこのコードを使用してJavaScript関数を呼び出しています:
<img onclick="updateField(this, '. $product_id .'); return false"; src="<?php echo $this->getSkinUrl('marketplace/images/icon-edit.png'); ?>"
.
画像のOnClickで定義したJavaScript関数
<?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スクリプト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/hhwn1gk &
コントローラファイル= 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>
.
私はそれを試していませんでしたが、あなたはあなたの要求に従って変更する必要があり、コントローラファイルも変更する必要があります。
所属していません magento.stackexchange