我制作了一个wordpress插件,其中有几个div。 我正在尝试使用下面的代码获取div的内容。
var arhive = j( "div.page2" ).html();
console.log(arhive);
工作正常,问题是当我尝试将其发送到服务器以使用新内容更新数据库时。
j.ajax({
url: "send_data.php",
type: "post",
data: {html: arhive} ,
success: function (response) {
// you will get response from your php page (what you echo or print)
console.log("success");
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
这是我的send_data.php文件的内容。
$var = $_POST["html"];
$my_post = array(
'ID' => 4137,
'post_content' => '$var',
);
// Update the post into the database
wp_update_post( $my_post);
echo "success";
我不知道为什么但我得到500错误,数据没有存储,任何想法可能导致这个?
答案 0 :(得分:1)
您可以设置wordpress操作来处理AJAX调用,然后使用数据将它们存储到数据库中:
插件中存储已发布数据的Wordpress操作
add_action( 'wp_ajax_my_plugin_ajax_store', 'my_plugin_ajax_store_callback' );
function my_plugin_ajax_store_callback() {
$whatever_data = $_POST['whatever'];
global $wpdb; // this is how you get access to the database
$wpdb->insert("wp_plugin_table", array(
"whatever" => $whatever_data,
));
echo 'Stored: '.$whatever_data;
wp_die(); // this is required to terminate immediately and return a proper response
}
您可以像这样设置ajax调用
jQuery(document).ready(function($) {
var data = {
'action': 'my_plugin_ajax_store',
'whatever': 1234
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
有关wordpress ajax调用的更多信息,请参阅此处AJAX in Plugins。