在WordPress中使用Ajax传递变量

时间:2014-03-28 00:09:02

标签: wordpress

我正在尝试在用户点击链接到页面single.php

时传递变量

这是我的代码

<a href='#' id='8' class='clickme' style='font-weight:bold;color:white;font-size:16px;'>";

function.php中,我输入了以下代码:

/////////////////////////////////////////////////////////
add_action( 'wp_head', 'myajaxcall' );

function myajaxcall(){ ?>
<script type="text/javascript">

jQuery(document).ready(function($) {
        jQuery(".clickme").click( function() {

    // We'll pass this variable to the PHP function example_ajax_request
   var id = $('.clickme').attr('id');

    // This does the ajax request
    $.ajax({
        url: <?php echo admin_url( 'admin-ajax.php'); ?>,
        data: {
            'action':'get_sidebar_request',
            'page_id' : id
        },

      //  beforeSend: function (jqXHR, settings)
      //  {
        //   alert( url = settings.url);
          //},

        success:function(data){
            alert(data);
        },

        error: function(errorThrown){
            //alert(errorThrown);

        }
    });
});
});
</script>
<?php }

add_action( 'wp_ajax_get_sidebar_request', 'idAjax' );
add_action( 'wp_ajax_nopriv_get_sidebar_request', 'idAjax' );

function idAjax()
    {
     require( get_template_directory() . '/single.php' );  
    } 

/////////////////////////////////////////////////////////////////////

在文件`single.php中,当我想获取传递的变量时,我把这段代码写成:

$page_id=0;
$page_id =  $_REQUEST['page_id'];
echo "page_id=".$page_id;

但变量未传递给single.php。我试着回应它,没有任何反应。

你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用Google Chrome中的网络工具来调试和查看已发送/已接收的数据。 如果发送时“id”不为null,请尝试使用$ _POST在php文件中输出数据,如下所示:

var_dump($_POST);

答案 1 :(得分:0)

检查一下:

 $.ajax({
    url: <?php echo admin_url( 'admin-ajax.php'); ?>,
    data: {
        'action':'get_sidebar_request',
        'page_id' : id
    },

并在网址值

中添加双引号
$.ajax({
    url: "<?php echo admin_url( 'admin-ajax.php'); ?>",
    data: {
        'action':'get_sidebar_request',
        'page_id' : id
    },

如果您没有看到您的ajax电话,则代码中会出现javascript错误。

您在浏览器控制台中有任何错误吗?