【问题标题】:Call php function using ajax to query api使用ajax调用php函数查询api
【发布时间】:2017-10-02 22:55:17
【问题描述】:

我正在尝试联系 Wordpress 中的外部 API。这个想法是用户按下按钮链接,然后通过 ajax 调用 php 函数,将 API 中的数据加载到页面上。

The button: 
<a data-id="5" class="product-cat">Product Category</a>

The ajax function:
    $(document).on( 'click', '.product-cat', function( event ) {
    $product = $(this);

    $.ajax({
        url: ajaxproducts.ajaxurl,
        type: 'post',
        data: {
            action: 'ajax_product_load',
            datavar: $product.data( 'data-id' )
        },

        success: function ( result ) {
            alert( result );
        }
    })
})(jQuery);

我现在遇到的问题是当我点击链接时什么都没有发生。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 最好将点击附加到产品而不是文档。还可以使用 $(this).attr('data-id') 获取 id
  • @TemaniAfif 你的意思是$(this).data('id') 对吗?
  • @Elli 浏览器控制台显示什么?
  • @LawrenceCherone 都是正确的 ;)
  • @Elli 还在等你回答浏览器控制台显示什么?

标签: php ajax wordpress


【解决方案1】:

最好只将点击事件附加到按钮上,并更新获取数据 ID 的方式,你可以这样做:

$(".product-cat").click(function() {
  //to sow the content of data-id
  console.log($(this).attr('data-id'));
  // you may also use 
  console.log($(this).data('id'));
  
  

  /*$.ajax({
      url: ajaxproducts.ajaxurl,
      type: 'post',
      data: {
          action: 'ajax_product_load',
          datavar: $(this).attr('data-id' )
      },

      success: function ( result ) {
          alert( result );
      }
  })*/
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a data-id="5" class="product-cat">Product Category</a>

【讨论】:

  • @LawrenceCherone 更新了我的答案以显示两种选择
  • 仍然不是问题,我正在等待 OP 提及 CORS 阻塞,因为似乎每个人都错过了问题中的第一句话 我正在尝试联系外部 API
  • 是的,但是他说“什么都没有发生”,当我们看到只有成功实施时,这意味着它陷入了错误,并且确信它与不正确的 datavar 相关.. . 也许这不是唯一的问题,但这是错误的。
  • 欣赏cmets。所以这可以正常工作,但是,在我的本地开发中,什么都没有发生。我的控制台中没有显示任何内容。我相信我已经正确地将我的脚本排入队列,但控制台中没有显示任何内容。
  • @Elli 你也可以添加错误部分,看看它是否落在那里?
【解决方案2】:
$('.product-cat').click(function() {


$product = $(this);

    $.ajax({
        url: ajaxproducts.ajaxurl,
        type: 'post',
        data: {
            action: 'ajax_product_load',
            datavar: $product.data( 'data-id' )
        },

        success: function ( result ) {
            alert( result );
        }
    })
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
  • 2011-05-08
  • 2011-01-17
相关资源
最近更新 更多