我通过一个正常工作的前端页面调用wordpress插件功能,我调用的函数是将数据插入数据库但是它不工作
这是我正在运行的查询(不起作用):函数在提交时被调用,因为打印了回显值但没有插入数据
function savedata(){
echo "<pre>";print_r($_POST);exit;
global $wpdb;
$wpdb->insert('questoptions',
array(
'question_id' => $_POST['question_id'],
'text' => $_POST['text']
),
array(
'%s',
'%s'
)
);
die();
return true;
}
这是从前端调用此函数的函数:
function abc(){
jQuery.ajax({
type: 'POST',
url: "<?php echo admin_url('admin-ajax.php'); ?>",
data: { action: 'savedata', 'question_id': document.getElementById('question_id').value, 'text': document.getElementById('text').value },
success: function(data){
alert('success');
console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
}
任何人都有任何想法谢谢
答案 0 :(得分:0)
Wordpress ajax function infromation 添加此功能并检查您的帖子数据是否被调用?
wp_ajax_nopriv_(action)为未登录的用户执行。
add_action( 'wp_ajax_savedata', 'custom_savedata' );
add_action( 'wp_ajax_nopriv_savedata', 'custom_savedata' );
function custom_savedata() {
global $wpdb;
if(isset($_POST) && !empty($_POST['question_id'])):
$data = ($wpdb->insert('table_name_add_here', array(
'question_id' => $_POST['question_id'],
'text' => $_POST['text'],
)
));
if($data){
echo 'success';
}else{
echo 'not success';
}
else:
echo 'please check post data';
endif;
exit;
}
答案 1 :(得分:-1)
删除第二行
echo "<pre>";print_r($_POST);exit;'
所以它执行其余代码并返回。
如果您应该尝试这个并且也没有得到解决方案,那么必须检查您的数据库表名称,如果表名由'wp'假装,则应该在查询中尝试使用wp_ questoptions作为表名而不是questoptions。
想。可能它会帮助你。