Передача значений флажков в базу данных mysql с использованием Codeigniter - PullRequest
0 голосов
/ 11 января 2012

Я использую CodeIgniter и mySQL для создания формы флажка.Форма содержит 4 варианта;каждая опция имеет только один флажок;Пользователи могут выбрать любую комбинацию параметров.Я хочу сделать следующее:

1 - для каждого флажка используйте значение 1 (если не отмечено) или 2 (если отмечено) и передайте эти значения в базу данных (каждый флажок имеет свое собственное поле),Прямо сейчас, независимо от того, установлены ли флажки или нет, флажки отправляют в базу данных значение 0.

2 - Как только пользователи обновят свои флажки, я бы хотел обновить базу данных, чтобы отразить новые значения.Прямо сейчас новая строка добавляется для каждого обновления в флажках.

На данный момент у меня есть форма, которая отправляет значения флажков в базу данных, контроллер и модель):

Форма

<?php echo form_open('addFoo'); ?>
<input type="checkbox" name="foo1" value="" />
<input type="checkbox" name="foo2" value="" />
<input type="checkbox" name="foo3" value="" />
<input type="checkbox" name="foo4" value="" />
<?php echo form_submit('submit', 'Save Changes'); ?>
<?php echo form_close(); ?>

Контроллер

function addFoo()
{
    if ($this->input->post('submit')) {
        $id = $this->input->post('id');            
                $foo1 = $this->input->post('foo1');
                $foo2 = $this->input->post('foo2');
                $foo3  = $this->input->post('foo3');
                $foo4  = $this->input->post ('foo4');

    $this->load->model('foo_model');
    $this->foo_model->addFoo($id, $foo1, $foo2, $foo3, $foo4);
    }
}

Модель

function addFoo($id, $foo1, $foo2, $foo3, $foo4) {
        $data = array(
            'id' => $id,
            'foo1' => $foo1,
            'foo2' => $foo2,
            'foo3' => $foo3,
            'foo4' => $foo4
        );

        $this->db->insert('foo_table', $data);
    }

Ответы [ 3 ]

3 голосов
/ 11 января 2012

На вашем контроллере:

, если вы хотите вставить новую запись для всех выбранных флажков:

foreach($this->input->post('foo') as $r)
{
 $data['fieldname']=$r;

 $this->model_name->insert($data);
}

, если вы хотите вставить все выбранные значения флажков в разные поля в одной записи, то,

foreach($this->input->post('foo') as $key=>$val)
    {
     $data['field'.$key]=$val;

    }
$this->model_name->insert($data);
1 голос
/ 11 января 2012

используйте разные значения для каждого флажка и получите значение массива флажков и используйте его в вашем контроллере print_r($this->input->post('foo'));, он напечатает значения, выбранные пользователем

используйте вот так

<?php
    if (isset($_POST['submit'])){
        print_r($_POST['foo']);
    }
?>
<form action="" method="POST">
<input type="checkbox" name="foo[]" value="1">1<br>
<input type="checkbox" name="foo[]" value="2">2<br>
<input type="checkbox" name="foo[]" value="3">3<br>
<input type="checkbox" name="foo[]" value="4">4<br>
<input type="submit" value="submit" name="submit">
</form>
1 голос
/ 11 января 2012

Что касается установки значений, флажок ничего не отправляет, если не отмечен. Чтобы добиться того, что вы хотите, вы должны сделать это:

<input type="checkbox" name="foo[]" value="1" />
<input type="checkbox" name="foo[]" value="2" />

Это будет отправлять значение независимо от того, установлен флажок или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...