这是我在 stackoverflow 上的第一篇文章,我会尽量做到简洁;-)
使用 CKeditor 将 textarea 表单字段插入数据库时遇到问题。
这是我的表单元素:
$form['add']['description'] = array(
'#wysiwyg' => true,
'#name' => 'description',
'#title' => t('description'),
'#type' => 'text_format',
'#base_type' => 'textarea',
);
提交表单时,我确实收到这样的 SQL 错误,因为 Drupal 附加了占位符元素“值”和“格式”
db_insert failed. Message = SQLSTATE[21S01]:
Insert value list does not match column list:
1136 Column count doesn't match value count at row 1,
query= INSERT INTO {tablename} (description)
VALUES (:db_insert_placeholder_13_value, :db_insert_placeholder_13_format)
不幸的是,我必须以这种方式设置 textarea 才能使 CKeditor 工作。你能建议我如何摆脱 :db_insert_placeholder_13_value, :db_insert_placeholder_13_format 再次成为单个变量吗?
我真的很感谢你的帮助
问题解决了 --- 愚蠢的我,应该更多地使用我的眼镜 :-D
只需在提交钩子中使用正确的数组索引将数据保存到数据库中,它就会起作用:
function MYMODULE_form_add_submit($form, &$form_state) {
...
'description' => $form_state['values']['description']['value'],
...
}