在页面加载时提交Magento表单

时间:2014-06-24 23:54:57

标签: php jquery forms magento

我正在进行扩展,将第三方API集成到Magento中。包括的步骤是填写我们网站上的表格。当用户点击提交时,API会预先填写用户随后批准的网站上的表单。一些get字符串变量被发送到我们站点上的页面,这会触发检索令牌的第二个API调用(幕后)。创建令牌后,我将令牌保存到第二个隐藏表单并通过此函数提交:

function submitAccount() {

 var formId = 'form-payment-submit';
    var myForm = new VarienForm(formId, true);
    var postUrl = '<?php echo $this->getUrl('marketplacepayment/marketplaceaccount/paymentsetup/') ?>';
    if (myForm.validator.validate()) {
            new Ajax.Updater(
                { success:console.log("form success") }, postUrl, {
                    method:'post',
                    asynchronous:false,
                    evalScripts:false,
                    onComplete:function(request, json) {
                       //submitButtonOn();
                       alert('success!');
                    },
                    parameters: $(formId).serialize(true),
                }
            );
      }
}

我的模块中的函数然后处理将值保存到数据库:

public function paymentsetupAction(){

    if(!(empty($_POST['access']))){

                // save tokens to db
                $collection = Mage::getModel('marketplace/userprofile')->getCollection();
                $collection->addFieldToFilter('mageuserid',array('eq'=>$_POST['userid']));

                foreach($collection as $row){
                    $id=$row->getAutoid();
                }
                $collectionload = Mage::getModel('marketplace/userprofile')->load($id);
                $collectionload->setaccesstoken($_POST['access']);
                $collectionload->setrefreshtoken($_POST['refresh']);
                $collectionload->setstripekey($_POST['key']);
                $collectionload->save(); 



            Mage::getSingleton('core/session')->addSuccess( Mage::helper('marketplace')->__('Your payment information has been sucessfully saved.'));
            $this->_redirect('marketplacepayment/marketplaceaccount/payment');


    }

}

问题是令牌没有被保存但没有出现错误。我无法将任何信息写入页面,因为提交是通过AJAX进行的,所以我对如何调试感到茫然。你看到paymentsetupAction有什么问题吗?或者,有没有更简单的方法让我知道它为什么不起作用?

1 个答案:

答案 0 :(得分:0)

问题出在$ collection部分 - 我使用了错误的数据库列名:

$collectionload = Mage::getModel('marketplace/userprofile')->load($id);
$collectionload->setaccess_token($_POST['access']);
$collectionload->setrefresh_token($_POST['refresh']);
$collectionload->setstripe_key($_POST['key']);
$collectionload->save(); 

抱歉随机不重要的问题。