使用ajax和onclick jquery调用click count php函数

时间:2015-01-22 06:40:27

标签: php jquery ajax wordpress

我在wordpress中使用此功能点击下载次数 Function.php

function setdownViews($postID) {
$dcount_key = 'post_download_count';
$dcount = get_post_meta($postID, $dcount_key, true);
if($dcount==''){
    $dcount = 0;
    delete_post_meta($postID, $dcount_key);
    add_post_meta($postID, $dcount_key, '0');
}else{
    $dcount++;
    update_post_meta($postID, $dcount_key, $dcount);
}
}

和此jequery代码在点击下载链接后调用此函数。

$(document).on('click', "#click-count", function () {
    <?php setdownViews(get_the_ID());?>
});  

但没有工作,post_download_count的元值没有更新。 我知道我应该使用ajax和jquery来调用这个函数但不知道如何 最好的问候。

2 个答案:

答案 0 :(得分:0)

我们不能像这样调用php函数,尝试使用ajax。 试试这个 例如:
index.php页面

$(document).ready(function(){
$(document).on('click', "#click-count", function () {
    var val = "Hi";
    $.ajax ({
        url: "ajax.php",
        data: { val : val },
        success: function( result ) {
            alert("Hi, testing");
            alert( result );
        }
    });
});
});

将新文件名添加为ajax.php页面并将下面的代码放入其中

<?php
echo ( $_GET['val'] );?>

答案 1 :(得分:0)

你不能在这样的javascript中调用php函数。 php做的是生成html(包括你的js),然后js将在浏览器中执行。

您必须将代码移动到单独的页面以增加下载数量(setdownViews函数内的代码)。当您在浏览器中打开该页面时,如果下载次数增加,那么它就可以正常工作。之后,使用js(在您的情况下为jquery)来调用该页面。

如果新页面名称为set-downloads-view.php,if可以调用类似set-downloads-view.php?id = 1的内容。然后通过$ _GET [&#39; id&#39;]

获取php中的id

以下是代码:

设置下载-view.php:

require( dirname( __FILE__ ) . '/wp-blog-header.php' );
$postID = $_GET['id'];
$dcount_key = 'post_download_count';
$dcount = get_post_meta($postID, $dcount_key, true);
if($dcount==''){
    $dcount = 0;
    delete_post_meta($postID, $dcount_key);
    add_post_meta($postID, $dcount_key, '0');
}else{
    $dcount++;
    update_post_meta($postID, $dcount_key, $dcount);
}

的javascript

$(document).on('click', "#click-count", function () {
    $.ajax ({
        url: "set-downloads-view.php?id=<?php get_the_ID();?>"),
        data: null,
        success: function( result ) {
            // it\'s done, show something to the user
        }
    });
});  

我很抱歉,我很久没有使用过wordpress了,但是你明白了。它不是最好的解决方案,但应该可行。