2013-01-21 99 views
0

請原諒基本問題,我對這一切都很陌生,但我很想學習,並一直試圖讓它工作大約7個小時。沒有運氣。我希望你能幫助!

這是我的Ajax調用:

<script type="text/javascript"> 
    FB.Event.subscribe('edge.create', 
    function(response) { 
    $.post("http://www.mydomain.com/fbtest.php", { category: "<?php echo $vpostid; ?>" }); 
    } 
); 
</script> 

這是我fbtest.php代碼:

<?php 
/** Set up WordPress environment */ 
require_once('./wp-load.php'); 
require_once('./wp-admin/admin-ajax.php'); 
require_once('./wp-includes/post.php'); 

$vcatid = $_POST['category']; 

$meta_val = get_post_meta($vcatid, 'fb_likes', true); 

$fbmetval = intval($meta_val); 
$fbmetval = $fbmetval + 1; 

update_post_meta($vcatid, 'fb_likes', $fbmetval); 

?> 

任何想法將是非常讚賞。我相信我只是錯過了一些非常基本的東西。

由於提前, 羅布

+3

PHP生成後的JavaScript效果如何?什麼HTTP請求被做?你會得到什麼HTTP響應?在JS控制檯上報告什麼(如果有)JavaScript錯誤?你服務器的日誌文件中有同樣的PHP錯誤? – Quentin

+0

那麼錯誤是什麼?你確定代碼'<?php echo $ vpostid; ?>'實際上是發送一個Id? – ste

+0

爲什麼在腳本中使用'$ vpostid',而在PHP中使用'$ vcatid'? '$ vpostid'看起來應該包含一個類別。 – jwatts1980

回答

0

你可能想看看阿賈克斯在插件食品:http://codex.wordpress.org/AJAX_in_Plugins

我發現,工作時,我不能讓AJAX以正常的方式工作與WordPress的,必須爲它設置處理程序。上面的鏈接當然值得一看。我發現首先遵循這個例子,然後在我明白髮生了什麼後寫下我想要的內容是很有用的。

+0

嗨@diggersworld,我確實有過這樣的閱讀,那就是我添加require_once('./wp-admin/admin-ajax.php')的想法;在頁面頂部。 我現在也嘗試添加全局$ wpdb,但這沒有幫助。你能看到我的代碼有什麼明顯的錯誤嗎? – Rob

+0

包括'admin-ajax.php'文件是不夠的。您需要設置動作偵聽器,以便Wordpress在請求進入時知道該怎麼做,例如, 'add_action('wp_ajax_my_action','my_action_callback');'。在jQuery post的數據中,您需要將其指定爲POST變量:'action:'my_action''。 – diggersworld