【问题标题】:Can't pass php in AJAX loaded php file无法在 AJAX 加载的 php 文件中传递 php
【发布时间】:2014-10-30 17:14:20
【问题描述】:

我正在使用 WooCommerce 建立一个网上商店。我做了两个开关按钮,你可以用它们来改变视图。要么是“列表视图”,要么是“网格视图”。我正在使用这个函数来触发 ajax 调用(此代码仅用于列表视图按钮):

$('#view-list').on('click',function(){
  var which_view = $(this).val();
  $.ajax({
      type: 'post',
      url: 'view-list.php',
      data: {which_view : which_view},
      success: function(res){
          $("#ajaxtest").html(null);
          $("#ajaxtest").html(res); // res = your new view...
      }
  });
});

'view-list.php' 看起来像这样:

<div id="ajaxtest">
  TESTING LIST VIEW TRIGGER

    <?php if ( have_posts() ) : ?>

        <?php woocommerce_product_loop_start(); ?>

            <?php woocommerce_product_subcategories(); ?>

            <?php while ( have_posts() ) : the_post(); ?>

                <?php wc_get_template_part( 'content', 'product' ); ?>

            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

        <?php
            /**
             * woocommerce_after_shop_loop hook
             *
             * @hooked woocommerce_pagination - 10
             */
            do_action( 'woocommerce_after_shop_loop' );
        ?>

    <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

        <?php wc_get_template( 'loop/no-products-found.php' ); ?>

    <?php endif; ?>
</div>

ajax 功能有效。如,它加载新文件“view-list.php”。然而,它并没有比这更进一步。它不处理文件的其余部分。这可能是因为浏览器加载后无法处理php函数,不是吗?

我怎样才能让它继续工作?

【问题讨论】:

    标签: javascript php jquery ajax wordpress


    【解决方案1】:

    浏览器不处理php,正常情况下可以随时通过ajax加载内容。您可以轻松追溯出错的地方,但这里有一些提示:

    1. 确保在添加元素后调用事件处理程序 (.click()) ($(document).ready())
    2. which_view 变量似乎没有在服务器端使用,但如果是,请检查 (console.log()) 它的值 ($(this).val()) 是否正确
    3. 还要检查 url 'view-list.php' 确实可以作为当前路径的相对 url 使用
    4. 此时你很有可能已经有了答案,但万一还是不行,你可以随时检查返回值(res)是否确实存在,如果不存在则可以开始调试你的php代码.

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 2020-03-14
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 2012-11-12
      • 2016-09-14
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多