如何将“复选框”值插入SQL

时间:2011-11-27 06:37:41

标签: drupal-7 drupal-modules

我对如何将“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:抱歉我的英文不好

2 个答案:

答案 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消息区域,并且变为一个易于导航的屏幕层次结构,如下所示:

Output of dpm() function

你可以在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
    }
  }
}