значение флажка не сохранено в базе данных должным образом - PullRequest
0 голосов
/ 12 июля 2011

Я пишу это в Codeigniter как form_view.php.

<?php echo form_open('form'); ?>

<h5>Man</h5>
<input type="checkbox" name="options[]" value="m"/>

<h5>Lady</h5>
<input type="checkbox" name="options[]" value="f" />

<h5>Username</h5>
<input type="text" name="username" value="" size="50" />

<div><input type="submit" value="Submit" /></div>

</form>

И затем я добавляю эти данные в базу данных следующим образом:

  $data=array(
            'type'=> $_POST['options[]'],
            'name'=> $_POST['name']
            );
    $this->db->insert('user_data',$data);

Поле имени в порядке. Но поле типа не имеет ничего. Я не могу найти ошибку. Пожалуйста, помогите мне.

Ответы [ 4 ]

0 голосов
/ 12 июля 2011

Make

'type'=> $_POST['options[]']

в

'type'=> $_POST['options']
0 голосов
/ 12 июля 2011

Удалить [] из опций.

$_POST['options'] будет массивом. Возможно, вам придется объединить значения в строку.

0 голосов
/ 12 июля 2011

Несколько предложений:

  1. Если ни один из них не отмечен, значение не будет отправлено в базу данных, поэтому вам нужно значение по умолчанию.
  2. Рассмотрите возможность использования типа радио вместо флажка. За исключением некоторых редких людей, я не думаю, что слишком много людей будут мужчинами и леди.
  3. Измените $ _POST ['options []'] на $ _POST ['options']
0 голосов
/ 12 июля 2011

Предполагая, что вы хотите сохранить несколько значений с запятой (в качестве разделителя) между ними

$data=array(
        'type'=> implode(',', $_POST['options']),
        'name'=> $_POST['name']
        );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...