【问题标题】:Magento newsletter ajax request returns nullMagento 通讯 ajax 请求返回 null
【发布时间】:2013-10-23 04:05:23
【问题描述】:

我正在尝试向 Magento 发送简报订阅请求,但它返回 null 并且没有任何反应。

我四处搜索,发现发布请求的 URL 非常不同。并且还从基本模板的文件中抓取了代码。

事实上,也许我没有发送正确的参数或其他什么。

这是正在使用的代码:

<form method="post" id="newsletter-form">
<input type="hidden" class="url" value="<?php echo $this->getUrl('newsletter/subscriber/new') ?>">
    <input id="newsletter" type="text" name="email" placeholder="RECEBA NOVIDADES" value="" class="input-text myFormInput" maxlength="128" autocomplete="off" style="width: 188px !important">
    <button type="submit" id="ajax-newsletter-submit" title="CADASTRAR" 
    class="button myFormButton" style="margin-top:20px;margin-left: -107px !important;width: 103px">CADASTRAR</button>

    </div>
</form> 

Javascript

   var newsletterSubscriberFormDetail = new VarienForm('newsletter-form');

   $j(function() {
       $j("#ajax-newsletter-submit").click(function() {        
        var email =$j("#newsletter").val();
        var url=$j(".url").val();
        var dataString = 'email='+ email;
            if(email=='') {
               $j("#newsletter").focus();
            } else {
                var a = email;
                var filter = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{1,4}$/;
                if(filter.test(a)){
                    $j.ajax({
                        type: "POST",
                        url: url,
                        data: dataString,
                        success: function(){                
                            alert('Assinatura realizada com sucesso!');
                            $j("#newsletter").val('');
                        }
                    });
                } else {
                    $j("#newsletter").focus();
                }
            }  
            return false;
        });
    });

【问题讨论】:

  • var url=$j(".url").val(); 的值是多少?
  • 分享controllerAction代码,可能错误会在php代码中。
  • 我没有控制器。我应该在控制器中输入什么代码?
  • @OSdave URL 的值在隐藏输入中 getUrl('newsletter/subscriber/new') ?>

标签: javascript ajax magento subscription newsletter


【解决方案1】:

试试这个代码,

 var val_form = new VarienForm('your form id');
jQuery("#your form id").submit(function(e)
{
    if (val_form.validator && val_form.validator.validate())   
    {        
        var postData = jQuery(this).serializeArray();
        var formURL = jQuery(this).attr("action");
        jQuery.ajax(
        {
            url : formURL,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR)
            {   
                alert('success');
            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                alert('Failure');
            }
        });
        this.reset(); //form field reset
        e.preventDefault(); //STOP default action
        e.unbind(); //unbind. to stop multiple form submit.
    }
});

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2017-03-12
    • 2023-03-07
    • 1970-01-01
    • 2013-04-23
    • 2011-10-19
    相关资源
    最近更新 更多