插入查询在wordpress插件中不起作用

时间:2018-02-21 10:40:23

标签: php wordpress insert

我通过一个正常工作的前端页面调用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);
        }
    });
}

任何人都有任何想法谢谢

2 个答案:

答案 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。

想。可能它会帮助你。