我试图通过jquery ajax将数据发送到我的插件类,以更新表中的一个字段,我得到以下错误
致命错误:调用成员函数query()
我的班级看起来像
class MyClass{
function __construct(){
global $wpdb;
$this->db = $wpdb;
//add_filter(\'query_vars\', \'parameter_queryvars\' );
}
//Save ajax datas
public function save_tips($token, $tips){
$this->db->query(
$this->db->prepare(
"UPDATE wp_competitors SET results= %s, update_time= %d",
$tips ,$cur_date = date(\'Y-m-d H:i:s\'), "WHERE token = $token
") // $wpdb->prepare
);
}
}
}
当我用ajax发送数据时,输入文件是我的插件主文件,我使用以下代码
if ($_POST[\'results\']){
$token = \'393a9276ae329e00b3739d2e76e52f3b\';
$tips = json_encode($_POST[\'results\']);
$save = new Tipspiel();
$save->save_tips($token, $tips);
return \'OK\';
}
似乎所有的wordpress功能都被忽略了
在@toscho反馈后更新代码
我在javascript中添加了以下内容
$j("form#tiepspiel").submit(function(e) {
e.preventDefault(); // this disables the submit button so the user stays on the page
var str = $j(this).serialize();
//alert(decodeURIComponent(str));
if ($j(\'ul#sortables li\').size() > 10){
$j( "#dialog-modal" ).dialog({
height: 140,
modal: true
});
return;
}
var data = {
action: \'TIPPS\',
tips: str,
_ajax_nonce: "<?php echo wp_create_nonce( \'my_ajax_nonce\' ); ?>"
};
$j.post(ajaxurl, data, function(response) {
alert(\'Got this from the server: \' + response);
//$j.cookie("tipspiel", "competitor", { expires: 1 });
$j(\'form#tiepspiel\').fadeOut(\'slow\', function() {
// Animation complete.
});
});
});
并将其添加到我的插件条目文件中
add_action(\'wp_ajax_nopriv_TIPPS\', \'tipps_processing_function\');
function tipps_processing_function(){
check_ajax_referer(\'my_ajax_nonce\');
if ($_POST[\'results\']){
$token = \'393a9276ae329e00b3739d2e76e52f3b\';
$tips = json_encode($_POST[\'results\']);
$save = new Tipspiel();
$save->save_tips($token, $tips);
return \'OK\';
}
//do stuff here
}
不清楚如何将接收到的变量传递给我的类