2015-05-29 99 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");