GVKun编程网logo

如何使用jquery ajax magento调用控制器

8

本文的目的是介绍如何使用jqueryajaxmagento调用控制器的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于ajax–如何使用jquery$.get()发送参数、

本文的目的是介绍如何使用jquery ajax magento调用控制器的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于ajax – 如何使用jquery $.get()发送参数、asp.net-mvc – jQuery Ajax调用控制器、c# – 如何从JQuery调用控制器方法?、java – 如何使用Jquery AJAX调用Spring控制器方法的知识。

本文目录一览:

如何使用jquery ajax magento调用控制器

如何使用jquery ajax magento调用控制器

我已经在magento中创建了自定义模块,我想使用 jquery ajax访问控制器,但我找不到正确的方法来执行此操作.
模板中的Ajax代码是

jQuery(".deleteAttrKeyId").on("click",function(){
      var baseUrl="<?PHP echo Mage::getBaseUrl();?>";
      var idArr=this.id.split("-");
      attrKeyId=idArr[1];
      alert(this.id);
      jQuery.ajax({
        type: "POST",dataType: "JSON",data :{'id':attrKeyId},url :baseUrl+"groupprice/adminhtml_grouppricebackend/index",complete:function(){alert("completed");
          },success:function(result){
          alert(result);
          }

        });
    });

布局中的块代码是

<groupprice_adminhtml_grouppricebackend_index>
<reference name="content">
<block type="groupprice/adminhtml_grouppricebackend" name="grouppricebackend"  template="groupprice/grouppricebackend.phtml"/>
</reference>
</groupprice_adminhtml_grouppricebackend_index>

控制器代码是

<?PHP
class Group_GroupPrice_Adminhtml_GrouppricebackendController extends     Mage_Adminhtml_Controller_Action
{
public function indexAction()
{      
 echo  __FILE__;
}
}

解决方法

用这个

<script type="text/javascript">
function callController(){
       new Ajax.Request("<?PHP echo   $this->getUrl('groupprice/adminhtml_grouppricebackend/index') ?>",{
           method: 'Post',parameters: {"parameter_name":"value"},onComplete: function(transport) {

               alert(transport.responseText);

           }
       });
   }

ajax – 如何使用jquery $.get()发送参数

ajax – 如何使用jquery $.get()发送参数

我试图做一个jquery GET,我想发送一个参数。

这是我的功能:

$(function() {
    var availableProductNames;
    $.get("manageproducts.do?option=1",function(data){
        availableProductNames = data.split(",");;
        alert(availableProductNames);
        $("#nameInput").autocomplete({
            source: availableProductNames
        });
    });
});

这似乎不起作用当我使用request.getParameter(“option”);我在我的servlet中得到一个null;

如果我键入到浏览器http://www.myite.com/manageproducts.do?option=1的链接,它的工作是完美的。

我也试过:

$.get(
    "manageproducts.do?",{option: "1"},function(data){}

这也不行。

你能帮我么?

编辑:

也试过

$.ajax({
      type: "GET",url: "manageproducts.do",data: "option=1",success: function(msg){
        availableProductNames = msg.split(",");
        alert(availableProductNames);
        $("#nameInput").autocomplete({
        source: availableProductNames
    });   
     }
      });

仍然得到相同的结果。

如果你说它在浏览器中直接访问manageproducts.do?option=1,那么它应该适用于:
$.get('manageproducts.do',{ option: '1' },function(data) {
    ...
});

因为它将发送相同的GET请求。

asp.net-mvc – jQuery Ajax调用控制器

asp.net-mvc – jQuery Ajax调用控制器

我是Ajax的新手,如果在下拉列表中选择了某些项目,我会尝试禁用复选框.我需要将mlaId传递给RecipientsController.cs中的GetMlaDeliveryType(int Id)方法.

我不确定如何在javascript函数checkMlaDeliveryType(mlaId)中设置ajax调用.

//  MLA Add  disable express checkBox if delivery type is electronic
        $('.AddSelectedMla').change(function () {

            var deliveryType = checkMlaDeliveryType($('.AddSelectedMla').val());


            // disable express option if delivery type is Electronic
            if (deliveryType == "Mail") {
                $(".mlaExpressIndicator").removeAttr("disabled");
            }else{
                $(".mlaExpressIndicator").attr('checked',false).attr("disabled",true);
            }

        })

        // ajax call to get delivery type - "Mail" or "Electronic"
        function checkMlaDeliveryType(mlaId)
        {
            $.ajax({
                type: "GET",url: "/Recipients/GetMlaDeliveryType/",data: mlaId,dataType:,success: 
            });

        }

RecipientsController.cs

    public string GetMlaDeliveryType(int Id) 
    {
        var recipientorchestrator = new Recipientsorchestrator();

        // Returns string "Electronic" or "Mail"
        return recipientorchestrator.GetMlaDeliveryTypeById(Id);
    }

编辑:

这是最终的javascript看起来如何工作

//  MLA Add  disable express checkBox if delivery type is electronic
$('.AddSelectedMla').change(function () {

    checkMlaDeliveryType($('.AddSelectedMla').val());
})

// ajax call to get delivery type - "Mail" or "Electronic"
function checkMlaDeliveryType(mlaId)
{
    $.ajax({
        type: 'GET',url: '@Url.Action("GetMlaDeliveryType","Recipients")',data: { id: mlaId },cache: false,success: function (result) {
            // disable express option if delivery type is Electronic
            if (result == "Mail") {
                $(".mlaExpressIndicator").removeAttr("disabled");
            } else {
                $(".mlaExpressIndicator").attr('checked',true);
            }
        }
    });

}

解决方法

$.ajax({
    type: 'GET',url: '/Recipients/GetMlaDeliveryType',success: function(result) {

    }
});

然后修复你的控制器动作,使它返回一个ActionResult,而不是一个字符串. JSON适用于您的情况:

public string GetMlaDeliveryType(int Id) 
{
    var recipientorchestrator = new Recipientsorchestrator();

    // Returns string "Electronic" or "Mail"
    return Json(
        recipientorchestrator.GetMlaDeliveryTypeById(Id),JsonRequestBehavior.AllowGet
    );
}

现在,您的成功回调将直接传递给您的模型的javascript实例.您无需指定任何dataType参数:

success: function(result) {
    // Todo: use the result here to do whatever you need to do
}

c# – 如何从JQuery调用控制器方法?

c# – 如何从JQuery调用控制器方法?

我有一个asp.net(非mvc)的ajax代码来调用webMethod从服务器获取请求的其他数据.但我似乎无法弄清楚在MVC中提供我的 JQuery的URL.
<script type="text/javascript" language="javascript">
function SubmitAjax(url,message,successFunc,errorFunc) {
    $.ajax({
        type:"POST",url:url,data:message,contentType: "application/json; charset=utf-8",dataType: "json",success:successFunc,error:errorFunc
        });

};

我不想将整个相关数据列表传递给每个到达页面的人的选择列表,因为并非所有人都需要此功能.所以我想通过JQuery调用控制器或webmethod,但似乎无法找到如何解决MVC中的URL.

我注意到这篇文章:
JQuery Ajax call gets resolved to the current Controller Folder,Instead of root Folder

$.getJson是一个mvc方法吗?对我的用例来说这是一个很好的解决方案吗?我只需要返回一个字符串url,或者如果找不到我正在寻找的空字符串.我是否需要为$.getJSon方法添加一个?是MVC的一部分还是JQuery的一部分?领先的斜杠是指向应用程序根目录还是服务器根目录?

解决方法

试试这篇文章:
Basic AJAX example with ASP.NET MVC?

或者这一个:
How to get the Json object for drop down?

他们应该给你一些指示.

本质上,$.getJson是一个jQuery方法,而不是MVC方法,但是想要将它与你的MVC控制器结合使用,返回一个Json结果.

java – 如何使用Jquery AJAX调用Spring控制器方法

java – 如何使用Jquery AJAX调用Spring控制器方法

我有以下Spring Controller

@Controller
@RequestMapping("/accreq")

使用以下映射

@RequestMapping(value = "/defRoles", method=RequestMethod.GET)
public @ResponseBody String loadDefaultRoles(
    @RequestParam(value="idGroup", required=false) String groupID
    throws servletexception{

我正在尝试使用以下jquery ajax调用此方法

$.ajax({
type: 'GET',
url: '/accreq/defRoles',
data: {idGroup: $('#infoGroup').val() },
success: function() {
    alert("success");
    }
});

请帮我弄清楚为什么即使在单击按钮时调用ajax方法也没有调用Spring方法.我已经使用firebug逐步完成了脚本,它肯定会触及ajax函数.

解决方法:

首先,尝试查看在浏览器中手动点击URL时会发生什么

如果成功,请打开firebug中的请求跟踪,看看firefox是否实际点击了URL(以及响应的内容)

今天关于如何使用jquery ajax magento调用控制器的分享就到这里,希望大家有所收获,若想了解更多关于ajax – 如何使用jquery $.get()发送参数、asp.net-mvc – jQuery Ajax调用控制器、c# – 如何从JQuery调用控制器方法?、java – 如何使用Jquery AJAX调用Spring控制器方法等相关知识,可以在本站进行查询。

本文标签: