从ajax调用seprate文件中的php函数无效

时间:2017-01-04 07:58:42

标签: php ajax

我希望通过将用户ID和日期与帖子进行比较来获取数据(时间)。但是对于测试我只是通过ajax调用php函数。我制作了一个单独的php文件(myscript.php),在其中我创建了一个函数并回显了类似的东西。

function my_action(){
    echo "dasdasasdaaddad";
    $date = $_POST['date'];
    echo $date;
    return $date;
}

现在当我点击一个按钮时,我会得到日期和用户ID。

global $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));
add_action( 'the_content', 'my_action_javascript' );
function my_action_javascript() { 
$current_user = wp_get_current_user();
$uid = $current_user->ID;
?>
<script type="text/javascript" >
    jQuery(".date").click(function(){

        clicked = this; 
    var dates= jQuery(clicked).closest("ul").find(".getdate").val();
    var item= jQuery(this).closest("li.lia");
    var date = jQuery(item).find("input.getdate").val();
    //var dates = jQuery(item).find("input.getdate").val();


    alert(date);
    jQuery.ajax({

        type:"post",
        url: "<?php $current_url;?>/myscript.php",

    data : {
        'action': 'my_action',
        'date': date,
        'userid': "<?php echo $uid?>"
    },

    // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
    success: function(data) {
            successmessage = 'Data was succesfully captured';
            $("label#successmessage").text(successmessage);
        },
        error: function(data) {
            successmessage = 'Error';
            $("label#successmessage").text(successmessage);
        },
    });
});
</script> 
<?php
}

我在ajax网址中提供了该文件的网址。现在它应该从myscript.php文件打印数据,但是我从ajax得到了这个结果。

Got this from the server:0

我也检查了网络,这对我来说似乎很好。     ajax正在获取用户ID和日期,但响应为0.但不知道为什么?

2 个答案:

答案 0 :(得分:0)

上 myscript.php页面删除函数my_action()..因为你没有调用它。

if you want to call this before that use my_function();

<?php
my_function();
function my_action(){
 echo "dasdasasdaaddad";
$date = $_POST['date'];
echo $date;
return $date;
}

?>

答案 1 :(得分:0)

您没有在myscript.php文件中调用my_action函数。打电话给你的功能,你将得到你想要的结果。

<?php

function my_action(){
    echo "dasdasasdaaddad";
    $date = $_POST['date'];
    echo $date;
    return $date;
}

my_action();

?>