2015-05-29 84 views
0

我想學習使用AJAX,但我完全卡住了某個地方。Php代碼不工作在Ajax頁面?

所以我有以下代碼:

<label>View as:</label> <a href ="#" onClick="return false" onmousedown="javascript:swapContent('con1');">Test 1</a>/<a href ="#" onClick="return false" onmousedown="javascript:swapContent('con2');">Test 2</a><br/> 
<div id = "myDiv">asdasd</div> 

以下.js腳本:

function swapContent(cv) { 
$("#myDiv").html("Put animated .gif here").show(); 
var url = templateDir; 
$.post(url.concat("/profileajax.php"), {contentVar: cv}, function(data) { 
    $("#myDiv").html(data).show(); 
}) 
} 

而下面profileajax.php頁:

<?php 
$contentVar = $_POST['contentVar']; 
if($contentVar == "con1") { 
    echo get_bloginfo('template_directory'); 
} 
else { 
    echo "Test"; 
} 
?> 

然而,當我點擊第一個鏈接,我收到以下錯誤:Fatal error: Call to undefined function get_bloginfo() in D:\Webdesign\XAMPP\htdocs\wordpress\wp-content\themes\globestate\profileajax.php on line 4

我該如何讓它工作? (順便說一句,我使用Wordpress)

+0

您需要在PHP文件中定義該函數。否則,AJAX正在*完美*工作。 –

回答

1

添加定義爲get_bloginfo()功能,你的PHP -

<?php 
function get_bloginfo($dir) { 
    // just for test we'll return the argument passed in 
    return $dir; 
} 

$contentVar = $_POST['contentVar']; 

if($contentVar == "con1") { 
    echo get_bloginfo('template_directory'); 
} else { 
    echo "Test"; 
} 

?> 

因爲它似乎你的AJAX工作,你應該看到「template_directory」回顯到頁。

+0

我想要做的是讓profileajax.php頁面識別所有的wordpress函數,不僅僅是特定的get_bloginfo函數 – Radu

+0

你不包括這個PHP文件中的任何wordpress函數。 –

+0

那麼這就是我想要做的,但我不知道如何。 (對不起!我是初學者) – Radu

0

我修復了這個問題!我所做的是在php頁面的頂部包含這一行: require_once("../../../wp-load.php");