我正在运行一个将数据发布到数据库的表单,每个问题字段都有很多动态生成的选项,问题查询工作正常,但动态创建的选项(查询运行到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');
答案 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,
)
));
完成