0

好的,这是我的 JavaScript

<script type="text/javascript" language="JavaScript">
function manageCart(task,item) {
var url = 'managecart.php';
var params = 'task=' + task + '&item=' + item;
var ajax = new Ajax.Updater(
          {success: ''},
          url,
          {method: 'get', parameters: params, onFailure: reportError});
}

function reportError(request) {
$F('cartResult') = "An error occurred";
}

这是 HTML

<p>
<a href="javascript:void(0)" onclick="manageCart('add',83)">Add to cart</a>
</p>

该脚本在 Firefox 中不起作用,我运行了一些 Firefox JS 调试器,但它们没有显示任何错误。我的 JavaScript 不太好,所以如果可以的话,请帮助我 :) 这个脚本实际上使用了 Prototype 库,如果它能让事情更清楚的话。

4

2 回答 2

1

对于这种类型的 Ajax 调用,请不要使用Ajax.Updater,因为它旨在使用 ajax 响应的内容更新特定元素。我相信您只想进行一个简单的单个 ajax 调用,因此 usingAjax.Request将是您想要使用的。

使用 Ajax.Updater 的原始代码

var url = 'managecart.php';
var params = 'task=' + task + '&item=' + item;
var ajax = new Ajax.Updater(
      {success: ''},
      url,
      {method: 'get', parameters: params, onFailure: reportError});

使用 Ajax.Request 的代码

var url = 'managecart.php';
var params = 'task=' + task + '&item=' + item;
var ajax = new Ajax.Request(url,
     {
          method: 'get',
          parameters: params,
          onFailure: reportError,
          onSuccess: function(){
              console.log('It Worked');
          }
     });

我在这个调用中放置了一个成功处理程序,只是为了确认它对你有用——它应该输出到你的控制台。您可以将其删除或console.log()在您满意时对其进行评论

于 2013-04-02T14:25:02.187 回答
0

我在 FireBug 上花了更多时间,发现了错误。

时间戳:03.04.2013 10:36:38 错误:ReferenceError:无效分配左侧源文件:http ://www.example.com/index.php 行:413,列:18 源代码:

('cartResult') = "An error occurred";

Firefox 迫切希望语句看起来像这样:

('cartResult') == "An error occurred"; 
于 2013-04-03T03:40:17.887 回答