Loading database content via XMLHttpRequest in Wordpress(在 Wordpress 中通过 XMLHttpRequest 加载数据库内容)
问题描述
我创建了一个新的 wordpress-template-page.这个想法是,当我单击侧边栏 div 中的链接时,它应该从我的内容 div 中的数据库加载内容.在一个简单的 php 页面上它可以工作,但结合我的 wordpress 模板页面它不起作用......
这就是我的代码:(简短版本)
<?php//模板名称:Weinkarteget_header();?><div id="容器侧边栏"><span id="wineList"></span><div id="sidebar-right"><li><a href='#' id='1' onclick='loadWine(this.id)'>点击</a></li>
get_footer();<脚本>函数 loadWine(id){xmlhttp=新的 XMLHttpRequest();xmlhttp.onreadystatechange=function(){如果(xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("wineList").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","loadWine.php?landID="+id,true);//我认为这里可能是错的xmlhttp.send();}
感谢您的帮助!:)
在 wordPress 中,你必须使用 action 进行 ajax 调用,类似这样(基本上在你的functions.php 中)
add_action('wp_ajax_nopriv_myAjaxFunction', 'myAjaxFunction');add_action('wp_ajax_myAjaxFunction', 'myAjaxFunction');函数 myAjaxFunction(){//获取ajax调用的数据$landID = $_POST['landID'];//其余代码}
在你的 javascript 文件中也使用 post
而不是 get
类似的东西
var data = "action=myAjaxFunction&landID="+id;xmlhttp.open("POST","http://your_site.com/wp-admin/admin-ajax.php",true);xmlhttp.send(数据);
给出的例子只是一个想法,你应该阅读更多关于它并使用 jQuery
来轻松.您可以在 Codex 和 这是另一篇不错的文章.
I have created a new wordpress-template-page. The idea is, that when I click on a link in my sidebar-div, it should load content from an database in my content-div. On a simple php-page it works, but in combination with my wordpress template-page it doesn't work...
And that's my code: (short version)
<?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>
Thanks for any help! :)
In wordPress, you have to use action for ajax call, something like this (basically in your 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
}
Also use post
instead of get
something like this in you javascript file
var data = "action=myAjaxFunction&landID="+id;
xmlhttp.open("POST","http://your_site.com/wp-admin/admin-ajax.php",true);
xmlhttp.send(data);
Given example is just an idea, you should read more about it and use jQuery
for ease. You can read more on Codex and here is another nice article.
这篇关于在 Wordpress 中通过 XMLHttpRequest 加载数据库内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Wordpress 中通过 XMLHttpRequest 加载数据库内容
基础教程推荐
- 使用 PDO 转义列名 2021-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- HTTP 与 FTP 上传 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01