我对如何将“Checkboxes”值插入SQL感到困惑 这是我的代码
$form['last'] = array(
'#type' => 'checkboxes',
'#title' => "Just title",
'#options' => array(
'opt1' => "Option 1",
'opt2' => "Option 2",
),
你可以看到我的表单由两个复选框组成,所以如何获取值并插入到sql语言中。任何人都可以提供示例或提示
这里我用来获取价值的方法(我知道它非常错误)
function fasil_form_submit($form,&$form_state){
global $user;
$entry = array(
'uid' => $user->uid,
'test1' => $form_state['values']['1first'],
$jenis = 'aa_test';
$return = insert_form($entry,$jenis);
}
ps:抱歉我的英文不好
答案 0 :(得分:2)
我不是百分之百确定你要做什么,但我认为你试图在数据库中为每个勾选的复选框插入一个值?如果是这样,这是最快捷的方式:
function fasil_form_submit($form,&$form_state){
// Filter out un-checked items
$checked = array_filter($form_state['values']['last']);
global $user;
foreach ($checked as $value) {
$entry = array(
'uid' => $user->uid,
'test1' => $value
);
$jenis = 'aa_test';
insert_form($entry, $jenis);
}
}
正如在另一个答案中已经提到的,查看表单中需要获取的内容的最简单方法是在提交函数中输出$form_state['values']
以查看从表单传递的内容。
但是,应该始终使用不熟练的print_r
并且可能会过早地调用exit
(在Drupal 7 drupal_exit()
中使用而不是exit
,从而搞乱表单提交无论如何),我强烈建议您下载并安装Devel module并使用它的dpm()
功能将变量打印到屏幕上。
传递给dpm()
的任何变量都会输出到标准的Drupal消息区域,并且变为一个易于导航的屏幕层次结构,如下所示:
你可以在Drupal中的代码中的任何地方使用它,例如
function fasil_form_submit($form,&$form_state){
// Output the form submission array to the messages area:
dpm($form_state['values']);
}
Devel模块非常好,对任何严重的Drupal开发都是绝对必要的。
希望有所帮助。
答案 1 :(得分:0)
这是我喜欢查看表单输出的快速方法
function fasil_form_submit($form,&$form_state){
header('content-type: Text/plain');
print_r($form_state['values']);
exit;
global $user;
$entry = array(
'uid' => $user->uid,
'test1' => $form_state['values']['1first'],
$jenis = 'aa_test';
$return = insert_form($entry,$jenis);
}
现在这三行应该清楚Drupal是如何提交数据的。
我相信你需要遍历$ form_state ['values'] ['last']并测试该键未设置为0.
function fasil_form_submit($form,&$form_state){
global $user;
foreach ($form_state['values']['last'] as $key => $value) {
if (value != 0) {
// $form_state['values']['last'][$key] was checked
}
else {
// $form_state['values']['last'][$key] not checked
}
}
}