обновить кратные значения флажка в столбце codeigniter - PullRequest
0 голосов
/ 01 февраля 2019

Вид, контроллер и модель ниже.после отправки страница возвращается к типу страницы, и в базе данных не сохраняется никаких значений.Теперь я не уверен, какие детали я должен набрать, пожалуйста, игнорируйте это дальше, потому что это все ерунда.Я должен напечатать это для более подробной информации, но у меня больше нет.просмотр

<form action="<?=  base_url()?>user/type" method="post">
<div class="checkbox"><label><input type="checkbox" value="Textile" name="type[]">Textile</label></div>
<div class="checkbox"><label><input type="checkbox" value="Jewellery" name="type[]"></label>Jewellery</div>
<div class="checkbox"><label><input type="checkbox" value="Footwear" name="type[]">Footwear</label></div>
</form>

контроллер

  function type()
  {
  if($this->session->userdata("user_id"))//If already logged in
        {
           $userID = $this->session->userdata("user_id");
          $data['user'] = $this->m_user->getRows($userID);
			$data['title'] = 'Type';

			$type=$this->form_validation->set_rules('type', 'Type', 'required');


			if($this->form_validation->run() === FALSE){
             $data['main_view']="users/v_type";
		$this->load->view('layouts/main',$data);
		$this->load->view('layouts/sidebar',$data);
		$this->load->view('layouts/footer',$data);
			} else {
				// Encrypt password
			
				$this->m_user->type(); //m_user is model

				// Set message
   
          if($data['user']->profile_pic==null)
          {
                redirect(base_url().'user/profilepicture/');
          }
		 else
    {
         redirect(base_url().'user/');
    }
    }
}
}

Модель

        		public function type(){
           $userID = $this->session->userdata("user_id");
          $data['user'] = $this->m_user->getRows($userID);
        $type = $this->input->post('type');
        $data=array('type'=>json_encode(implode(",", $type)),);
			$this->db->where('user_id', $userID);
			return $this->db->update('users', $data);
		}

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Во-первых, вы не получаете значение флажка в контроллере, как это $this->input->post()

Во-вторых, не получите значение формы в модели.Вы должны узнать, как работает MVC

Контроллер

 function type(){
if($this->session->userdata("user_id"))//If already logged in
{
    $userID = $this->session->userdata("user_id");
    $data['user'] = $this->m_user->getRows($userID);
    $this->form_validation->set_rules('type[]', 'Type', 'required');

    if($this->form_validation->run() === FALSE){
        $data['main_view']="users/v_type";
        $this->load->view('layouts/main',$data);
        $this->load->view('layouts/sidebar',$data);
        $this->load->view('layouts/footer',$data);
    } else {
        // Encrypt password

        $type = $this->input->post('type');
        $this->m_user->type($type); //m_user is model

        // Set message
    }
    if($data['user']->profile_pic==null){
        redirect(base_url().'user/profilepicture/');
    }else{
        redirect(base_url().'user/');
    }
}
}

Модель

public function type($type){
  $userID = $this->session->userdata("user_id");
  $data['user'] = $this->m_user->getRows($userID);
  $data=array('type'=>json_encode(implode(",", $type)));
  $this->db->where('user_id', $userID);
  return $this->db->update('users', $data);
}

Проверка флажка

$this->form_validation->set_rules('type[]', 'Type', 'required');
0 голосов
/ 01 февраля 2019

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

<code>echo '<pre>';
var_dump($this->input->post());
echo '


';

пример для флажка со значением будет

<div class="checkbox"><label><input type="checkbox" value="Footwear" name="type[]">Footwear</label></div>

в вашем случае

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