【问题标题】:Ajax load wordpress template partAjax 加载 wordpress 模板部分
【发布时间】:2014-11-18 21:15:49
【问题描述】:

我在付款方式的表单中有 2 个单选按钮 - 我想通过 ajax 在点击时加载模板部分。

现在我只能加载信用卡表格 - 我要做的是如果选择信用卡然后加载信用卡模板如果选择了贝宝然后加载贝宝模板部分。

表单元素

<input type="radio" class="radio-cc" name="method" value="creditcard"><span class="radio-span">Credit Card</span>
<input type="radio" class="radio-paypal" name="method" value="paypal"><span class="radio-span">Paypal</span>

jQuery

$("input[name=method]").change(function(){ 
    $.ajax({  
        type: 'GET',  
        url: '<?php echo admin_url('admin-ajax.php');?>',  
        data: {  
            action: 'CCAjax'     
        },  
        success: function(textStatus){  
           $( '.default-form' ).append( textStatus ); 
        },  
        error: function(MLHttpRequest, textStatus, errorThrown){  
            alert(errorThrown);  
        }  
    });  
});  

PHP

function CCAjax()
    {
       get_template_part('cc');
        die();
    }

    // creating Ajax call for WordPress  
    add_action('wp_ajax_nopriv_CCAjax', 'CCAjax');
    add_action('wp_ajax_CCAjax', 'CCAjax');

【问题讨论】:

    标签: jquery ajax wordpress


    【解决方案1】:

    您必须传递所选方法的值:

    jQuery

    $("input[name=method]").change(function(){
      var chosenmethod = $(this).val();
      $.ajax({  
        type: 'GET',  
        url: '<?php echo admin_url('admin-ajax.php');?>',  
        data: { action : 'CCAjax', chosen : chosenmethod },  
        success: function(textStatus){  
           $( '.default-form' ).html( textStatus ); 
        },  
        error: function(MLHttpRequest, textStatus, errorThrown){  
            alert(errorThrown);  
        }  
      });  
    });
    

    PHP

    function CCAjax()
    {
       if($_POST['chosen']=='creditcard'){
         get_template_part('cc');
       } else {
         get_template_part('paypal');
       }
       exit();
    }
    
    // creating Ajax call for WordPress  
    add_action('wp_ajax_nopriv_CCAjax', 'CCAjax');
    add_action('wp_ajax_CCAjax', 'CCAjax');
    

    【讨论】:

    • 谢谢伙计——即使我点击贝宝,它也只会加载抄送部分。此外,如果我单击 CC 更改为 Paypal,它会同时加载两者等.....有什么方法可以清除未使用的吗?
    • 好的,我知道为什么只有一个显示并编辑了您的答案。 - 如果选择了另一个表格,有什么想法可以清除未使用的表格?谢谢!
    • 试试 .html(textStatus);而不是 .append(textStatus);在 jquery-ajax 中成功了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2021-11-09
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多