Как вставить данные в базу данных из выпадающего списка в codeigniter?

У меня есть выпадающий, который выглядит следующим образом

<select class="selectpicker form-control" multiple name="category[]">
<option value="1" id="MENTAL HEALTH">MENTAL HEALTH</option>
<option value="2" id="SUICIDE SUPPORT">SUICIDE SUPPORT</option>
<option value="3" id="HEALTH">HEALTH</option>
<option value="4" id="SUPPORT">SUPPORT</option>
</select>

В моем контроллере у меня есть следующий код, чтобы получить эти данные из выпадающего

public function save()
{
$ctgry= ($this->input->post('category'));
$orgName= ($this->input->post('InputName'));
$streetNo= ($this->input->post('StreetNo'));
$streetName= ($this->input->post('StreetName'));
$suburb= ($this->input->post('Suburb'));
$state= ($this->input->post('state'));
$postCode= ($this->input->post('PostCode'));
$count = count($ctgry);

$supprtGroup = array(
'name' => $orgName,
'street_no' => $streetNo,
'street' => $streetName,
'suburb' => $suburb,
'state' => $state,
'pc' => $postCode
);

$supportgroup_id = $this->Home_Model->addSupportGroup($supprtGroup);

$j = 0;
i = 0;
$sc_id = 0

echo 'aa';//just for error checking purpose

if ($count > 1)
{
echo ' aa1';//just for error checking purpose
while ($i > $count)
{
echo ' aa2';//just for error checking purpose

$support_category = array(
'supportgroup_id' => $supportgroup_id,
'category_id' => $ctgry[$j]
);
$sc_id = $this->Home_Model->addSupportrCategory($support_category);
$i++;
echo $sc_id;//just for error checking purpose

}
}
else
{
echo ' aa3';//just for error checking purpose
$support_category = array(
'supportgroup_id' => $supportgroup_id,
'category_id' => $ctgry[$j]
);
$sc_id = $this->Home_Model->addSupportrCategory($support_category);
echo $sc_id;//just for error checking purpose
}
echo'bb';//just for error checking purpose
}

Ниже мой класс модели

function addSupportGroup($supprtGroup=NULL)
{
$this->db->insert('support_group', $supprtGroup);
return $this->db->insert_id();
}

function addSupportrCategory($support_category=NULL)
{
$this->db->insert('support_category', $support_category);
return $this->db->insert_id();
}

При выборе нескольких значений из выпадающего списка выводится следующее

aa aa1bb

Может ли кто-нибудь дать мне ответ, почему это происходит, если это одно значение
выбрано из выпадающего списка сохранение его в БД, хорошо, я ищу все подобные
сообщений, но не смог найти ответ.

3

Решение

Я не вижу где $count определяется в вашем вопросе, поэтому я не знаю, каково его значение, однако, если вы получаете «aa1» в качестве вывода, вы говорите, что оно больше 1.

С вашим while() ты говоришь что $i должен быть больше чем $count но $ i равно 0, поэтому цикл while не запустится.

Если вы просто хотите пройтись по категориям, было бы проще просто:

$supportgroup_id = $this->Home_Model->addSupportGroup($supprtGroup);

foreach ($ctgry as $cat) {
$insert = array(
'supportgroup_id' => $supportgroup_id,
'category_id' => $cat
);

$sc_id = $this->Home_Model->addSupportrCategory($support_category);
}

Это будет работать, потому что выпадающий список всегда будет выбран как массив.

Вы должен также посмотрите на добавление проверки к этому!

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]