Jquery 用AJAX替换href操作

Jquery 用AJAX替换href操作,jquery,ajax,zen-cart,Jquery,Ajax,Zen Cart,我在产品列表页面上有以下生成的href链接 <a title="Add to My Favourites" class="a2f-link" href="http://epicurium.localhost/by-lifestyle-diet/breakfast?sort=20a&amp;products_id=1838&amp;action=add_to_favourites"> <img src="images/icons/favourites.pn

我在产品列表页面上有以下生成的href链接

<a title="Add to My Favourites" class="a2f-link" href="http://epicurium.localhost/by-lifestyle-diet/breakfast?sort=20a&amp;products_id=1838&amp;action=add_to_favourites">
    <img src="images/icons/favourites.png" alt="Add to My Favourites" title=" Add to My Favourites " width="16" height="16" class="fl_add" />
</a>
我想通过AJAX将其更改为工作状态,这样就不需要重新加载页面,但老实说,我不知道从哪里开始将href链接修改为AJAX调用。 我唯一尝试过的AJAX是通过一个按钮提交一个简单表单,其中AJAX链接到的文件是特定于该流程的,而不是开关的一部分

我在网上做了一个搜索,通过SO,没有找到任何这样做的例子


欢迎任何建议或例子

为锚定标记提供id并为ajax编写脚本

<a id="add_fav" href="javascript:void(0)" ..> img src="">...

$(document).on('click','#add_fav',function(){
   //write your ajax call here
   $.ajax({
      url : 'your_controller_method',
      type : 'GET', or "POST" select accordingly 
      data : {'product_id' : 1838,
             ....
          },
     dataType:'json',
     success : function(data) {              
          alert('Data: '+data);
         },
     error : function(request,error){
     }
   });
 })
or you can make javascript function and pass data to function and then set it to ajax data
img src=”“>。。。
$(文档)。在('单击','添加'u fav',函数()上{
//在这里编写ajax调用
$.ajax({
url:“您的\u控制器\u方法”,
键入:“获取”,或相应地选择“发布”
数据:{'product_id':1838,
....
},
数据类型:'json',
成功:函数(数据){
警报(“数据:”+数据);
},
错误:函数(请求、错误){
}
});
})
或者,您可以使javascript函数并将数据传递给函数,然后将其设置为ajax数据

不清楚你的锚是如何被使用的。您可以将PHP代码片段精简到与之相关的内容(并正确标记它)。如果这个问题依赖于Zen功能,它应该被标记为Zen功能。事实上,我开始怀疑你展示的锚标记是否相关。这似乎是一个PHP问题,或者您需要学习ajax,并在提问之前做出努力。您的问题是关于PHP还是JavaScript的?@isherwood我可以向您保证,我发布的生成html用于触发案例“add_to_favorites”:如发布的那样。正如我在问题中所说的,我在过去做过少量AJAX,但它是用于表单提交的,而不是带有操作的href链接。我在谷歌上搜索了一些关于这方面的信息,结果一无所获。如果我不希望在操作完成时重新加载页面,那么我需要使用AJAX,因此这不是PHP问题。
case 'add_to_favourites':
  if (isset($_GET['products_id'])) {
    if (zen_has_product_attributes($_GET['products_id'])) {
      $messageStack->add_session('product_info', sprintf(CAUTION_PRODUCT_HAS_ATTRIBUTES, zen_get_products_name($_GET['products_id'])), 'caution');
          zen_redirect(zen_href_link(zen_get_info_page($_GET['products_id']), zen_get_all_get_params(array('action'))));
    } else {
      if (!(isset($_SESSION['customer_id']) && zen_not_null($_SESSION['customer_id']))) {
        $messageStack->add_session('login', CAUTION_LOGIN_REQUIRED_FOR_FAVOURITES, 'caution');
        $_SESSION['navigation']->set_snapshot();
        zen_redirect(zen_href_link(FILENAME_LOGIN, '', 'SSL')); 
      }
      $favourites = new favourites();
      $favourites->addToFavourites($_GET['products_id'], (FAVOURITES_SHOW_ON_ADD == 'true') ? 'favourites' : 'header');
      if (FAVOURITES_SHOW_ON_ADD == 'true') {
        zen_redirect(zen_href_link(FILENAME_FAVOURITES, '', 'SSL'));
      } else {
        zen_redirect(zen_href_link($current_page_base, zen_get_all_get_params(array('action', 'products_id'))));
      }
    }
  }
break;
<a id="add_fav" href="javascript:void(0)" ..> img src="">...

$(document).on('click','#add_fav',function(){
   //write your ajax call here
   $.ajax({
      url : 'your_controller_method',
      type : 'GET', or "POST" select accordingly 
      data : {'product_id' : 1838,
             ....
          },
     dataType:'json',
     success : function(data) {              
          alert('Data: '+data);
         },
     error : function(request,error){
     }
   });
 })
or you can make javascript function and pass data to function and then set it to ajax data