Как вставить значения «Флажки» в SQL - PullRequest
0 голосов
/ 27 ноября 2011

ну я запутался в том, как вставить значения "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 ]

2 голосов
/ 27 ноября 2011

Я не уверен на 100%, что вы пытаетесь сделать, но я думаю, что вы пытаетесь вставить значение в базу данных для каждого из отмеченных флажков?Если это так, то это самый быстрый способ:

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 и использовать его функцию 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.

Надеюсь, это поможет.

0 голосов
/ 27 ноября 2011

Вот быстрый способ, которым мне нравится смотреть на вывод моей формы

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);
}

Теперь эти 3 строки должны прояснить, как 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
    }
  }
}
...