1

フロントエンドで追加された注文の管理者コメントを追加するために、カスタムテキスト領域を追加したいと思います。そして、ajaxから注文テーブルに保存したいと思います。カスタムモジュールを作成しようとしていますが、成功しませんでした。

管理用テンプレートファイルを変更して追加しました(緊急コメント、緊急フィールドです)が、ajaxを使用して保存できませんでした。

ここに画像の説明を入力してください

4

2 に答える 2

4

最後に、コアファイルの変更からそれを行いました。

以下のコードを info.phtml ファイルに追加しました

<form id="cus_com" >
            <div class="entry-edit">
                <div class="entry-edit-head">
                    <h4 class="icon-head head-payment-method"><?php  echo Mage::helper('sales')->__('Urgent Comment') ?></h4>
                </div>
                <fieldset>
                    <span class="field-row">
                        <label class="normal" for="urgent_comment"><?php echo Mage::helper('sales')->__('User Note') ?></label>
                        <textarea name="urgentComment" rows="3" cols="5" style="height:6em; width:99%;" id="urgentComment" >
                            <?php echo $_order->getUserNote(); ?>
                        </textarea>
                    </span>
                    <input name="isUrgent" type="checkbox" id="isUrgent" value="<?php if ($_order->getUserNote() == 1) {
                                echo 'yes';
                            }  ?>" />
                    <label> <?php echo Mage::helper('sales')->__('Is Urgent') ?></label><br />
                    <button type="button" align="right" title="<?php echo "Submit Comment" ?>" id="bb" onClick="handlerFunction()" ><span><span><?php echo "Submit Comment" ?></span></span></button>
                    <script type="text/javascript">
                        function handlerFunction(){
                            var params = {};
                            //var   shipping = $('shipping-fields').serialize(true);
                            // params['shipping'] = Object.toJSON(shipping);
                            params['order_id'] = <?php echo $_order->getId() ?>;
                            params['urgentComment'] = $('urgentComment').value;
                            var n = $('isUrgent').value;
                            if(n=='yes'){
                                params['isUrgent']=1;
                            }else{
                                params['isUrgent']=0;
                            }

                            new Ajax.Request('<?php echo Mage::getModel('adminhtml/url')->getUrl('orderedit/order/saveCommnet') ?>', {
                                method: 'post',
                                parameters: params,
                                onSuccess: function(transport) {
                                    $('urgentComment').innerHTML = transport.responseText;              
                                }
                            }); 
                        }
                    </script>
                </fieldset>
             </div>
            </form>

これを追加して、コントローラーを注文しました public function saveCommnetAction(){

$order = $this->_initOrder();
    $comment= $this->getRequest()->getPost('urgentComment');
    $is_urgent = $this->getRequest()->getPost('isUrgent');

    $order->setUserNote($comment)
          ->setIsUrgent($is_urgent);
    $order->save();

}

その働き。ありがとう

于 2013-03-15T10:57:57.587 に答える
0

これはテンプレートファイルです

app / design / adminhtml / default / default / template / sales / order / view / tab / info.phtml

これはコントローラーです。Mage_Adminhtml_Controller_Actionを拡張する別のカスタムモジュールコントローラークラスです。

app / code / local / mynamespace / OrderEdit / controllers / OrderController.php

于 2013-03-15T11:56:29.197 に答える