来自javascript的Ajax调用在drupal 7中不起作用?我做错了什么

时间:2012-11-30 06:39:45

标签: javascript jquery ajax drupal

function updateRecord(actdate, plandate, bugnumber) {
    var adate = document.getElementById(actdate).value.split("-");
    var pdate = document.getElementById(plandate).value.split("-");
            jQuery.ajax({
                url: '?=bug_parser/updaterecord/'+adate[0]+'/'+adate[1]+'/'+adate[2]+'/'+pdate[0]+'/'+pdate[1]+'/'+pdate[2]+'/'+bugnumber,
                dataType: 'html',
                async:true,
                crossDomain:true,
                success: function(response, textStatus, jqXHR) {
                    if(response == '1') {
                        alert("success");
                    } else {
                        alert("Failed");
                    }       
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    alert('Error updating the record');
                },
            });
    return false;
} 

我正在尝试通过按钮点击事件的ajax调用来更新记录。在我的drupal模块中有适当的菜单回调。有趣的是,如果我复制粘贴浏览器导航栏中的URL,它可以正常工作。但是,如果我通过javascript进行ajax调用它不起作用

1 个答案:

答案 0 :(得分:0)

你的ajax无法正常工作的原因是因为你需要把它放在drupal行为中。

查找drupal js行为。它基本上是为你的js创建一个包装器,所以它适用于drupal javascript文件和包含。

您还可以将此主题用作行为参考:Drupal behaviors

通常你的所有javascript都必须进入行为。这是最佳实践,可以为您节省很多麻烦