如何将生成的字段数据插入数据库wordpress插件

时间:2018-02-22 11:15:43

标签: php database wordpress insert

我正在运行一个将数据发布到数据库的表单,每个问题字段都有很多动态生成的选项,问题查询工作正常,但动态创建的选项(查询运行到500) )不工作。

前端:

<input name="text" placeholder="Question text" type="text" id="text"></br>
    <input type=\"text\" placeholder=\"text\" name=\"option_text[]\" class=\"fieldname\" />
    <input type=\"number\" placeholder=\"0\" name=\"option_score[]\" class=\"fieldtype\" />

jquery:哪个功能正常

function abc(){

var fName = new Array();

jQuery('.fieldname').each(function(index, value){
       fName.push(jQuery(this).val());
})

var fType = new Array();

jQuery('.fieldtype').each(function(index, value){
       fType.push(jQuery(this).val());
})

jQuery.ajax({
        type: 'POST',
        url: "<?php echo admin_url('admin-ajax.php'); ?>",
        data: { action: 'savedataques', text: document.getElementById('text').value, textopt: fName, score: fType},              
        success: function(data){
            alert('success');
alert('data');
            console.log(data);
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });
}

Php代码:数据查询是好的,但dataop查询在空白页的错误中运行。

    function savedataques(){
    global $wpdb;

            $data = ($wpdb->insert('wp_dbquestions', array(

                        'text'        => $_POST['text'],
                    )
            ));


 $lastid = $wpdb->insert_id;
            echo $lastid;

这就是问题所在:

$dataop = ($wpdb->insert('wp_questoptions', array(
                'question_id'        => $lastid
                'text'        => $_POST['textopt'],
                'score'        => $_POST['score'],
            )
    ));

        }

    exit;

die();
return true;
}
//
add_action('wp_ajax_savedataques', 'savedataques'); 
//add_action('wp_ajax_nopriv_savedataques', 'savedataques');

1 个答案:

答案 0 :(得分:0)

这是解决方案: 只需要在所有动态生成的选项上应用foreach

    $i=0;
    $optiontext = $_POST['textopt'];
    foreach($optiontext as $key => $val ){

        $score = $_POST['score'][$i];
        $textopt = $_POST['textopt'][$i];
        $i++;

然后查询:

        $data = ($wpdb->insert('wp_questoptions', array(
                    'question_id' =>  $lastid,
                    'text'        => $textopt,
                    'score'        => $score,
                )
        ));

完成