我创建了一个新的wordpress-template-page。我的想法是,当我点击sidebar-div中的链接时,它应该从我的content-div中的数据库加载内容。在一个简单的php页面上它可以工作,但结合我的wordpress模板页面,它不起作用......
这是我的代码:(简短版)
<?php // Template Name: Weinkarte
get_header(); ?>
<div id="container-sidebar">
<span id="wineList"></span>
</div>
<div id="sidebar-right">
<li><a href='#' id='1' onclick='loadWine(this.id)'>Click</a></li>
</div>
get_footer();
<script>
function loadWine(id)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("wineList").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","loadWine.php?landID="+id,true); //I think here is probably the fault
xmlhttp.send();
}
</script>
感谢您的帮助! :)
答案 0 :(得分:4)
在wordPress中,你必须使用ajax调用的动作,就像这样(基本上在你的functions.php中)
add_action( 'wp_ajax_nopriv_myAjaxFunction', 'myAjaxFunction' );
add_action( 'wp_ajax_myAjaxFunction', 'myAjaxFunction' );
function myAjaxFunction(){
//get the data from ajax call
$landID = $_POST['landID'];
// rest of your code
}
在javascript文件中使用post
代替get
这样的内容
var data = "action=myAjaxFunction&landID="+id;
xmlhttp.open("POST","http://your_site.com/wp-admin/admin-ajax.php",true);
xmlhttp.send(data);
鉴于示例只是一个想法,您应该阅读更多相关内容并轻松使用jQuery
。您可以在Codex和here is another nice article上阅读更多内容。