Welcome Guest, Not a member yet? Register   Sign In
Newbie , Form active select, starting adventure
#1

[eluser]Unknown[/eluser]
Hi!

I,m pretty new in php and i starting my adventure with coding in CodeIgniter, i have some small trouble. I don't know how to make pretty simple form where if i set the first select field the second will be limitted with corresponding in my database records are from the first field.

Example when i select: Wycieczka select biura will be limited with wycieczka.

Database diagram in: http://wyslij.nazwa.pl/base.png

I appreciate any help, Thanks

Model
Code:
<?php
class Zamowienie_model extends CI_Model {

public function __construct()
{
  //polaczenie z baza
  $this->load->database();
}

// wybieranie wycieczek z bazy do pola select
public function get_wycieczki()
{

$query = $this->db->get('wycieczki');
return $query->result_array();

}




//wstawianie do bazy wartości
public function set_zamowienie()
{
$this->load->helper('url');

// wypełnianie z formularza

$data = array(
  'Biura_idBiura' => $this->input->post('Biura_idBiura'),
  'Wycieczki_idWycieczk' => $this->input->post('Wycieczki_idWycieczk'),
  'k_imie' => $this->input->post('k_imie'),
  'k_nazwisko' => $this->input->post('k_nazwisko'),
  'ilosc_osob' => $this->input->post('ilosc_osob'),
  'ilosc_dzieci' => $this->input->post('ilosc_dzieci'),
  'k_email' => $this->input->post('k_email'),
  'k_tel' => $this->input->post('k_tel'),
  'k_comment' => $this->input->post('k_comment'),
  'Daty_Wyc_idDaty_Wyc' => $this->input->post('Daty_Wyc_idDaty_Wyc'),
  
);

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





// UWAGA KONIEC MODELU
}


View
Code:
?php echo validation_errors(); ?>

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


<div class="form_settings">
  <h1>Wycieczka:</h1>
  <select name="Wycieczki_idWycieczki">
  
  &lt;?php foreach ($wycieczki as $wycieczki_item): ?&gt;
  <option value="&lt;?php echo $wycieczki_item['idWycieczki'] ?&gt;" &lt;?php echo set_select('Wycieczki_idWycieczki', $wycieczki_item['idWycieczki'] ); ?&gt; >&lt;?php echo $wycieczki_item['w_nazwa'] ?&gt;</option>
  &lt;?php endforeach ?&gt;
  </select>
  
  <h1>Biuro:</h1>
  czekamy na modul z biurami
  
  <h1>Data:</h1>
  &lt;!-- &lt;input type="text" name="data" value="" size="50" /&gt; --&gt;
  modul dat <br><br>
  
  
  <p><span>Imię</span>&lt;input type="text" name="k_imie" value="" size="50" /&gt;&lt;/p>
  <p><span>Nazwisko</span>&lt;input type="text" name="k_nazwisko" value="" size="50" /&gt;&lt;/p>
  <p><span>Ilość osób</span>&lt;input type="text" name="ilosc_osob" value="" size="50" /&gt;&lt;/p>
  <p><span>Ilość dzieci</span>&lt;input type="text" name="ilosc_dzieci" value="" size="50" /&gt;&lt;/p>
  <p><span>E-mail</span>&lt;input type="text" name="k_email" value="" size="50" /&gt;&lt;/p>
  <p><span>Telefon</span>&lt;input type="text" name="k_tel" value="" size="50" /&gt;&lt;/p>
  <p><span>Komentarz</span>&lt;textarea class="contact textarea" rows="8" cols="50" name="k_comment"&gt;&lt;/textarea></p>
  
  
  <p>input class="submit" type="submit"  value="Wyślij" />
  &lt;input class="submit" type="reset"  value="Wyczyść" /&gt;&lt;/p>
  
  
</div>

&lt;/form&gt;

Controler
Code:
&lt;?php

class Zamowienie extends CI_Controller {


public function __construct()
{
  parent::__construct();
  $this->load->model('zamowienie_model');
}



function index()
{
  $this->load->helper(array('form', 'url'));
  $this->load->library('form_validation');
  
  $this->form_validation->set_rules('k_imie', 'Imię', 'required');
  //$this->form_validation->set_rules('text', 'text', 'required');

  if ($this->form_validation->run() == FALSE)
  {
   $data['wycieczki'] = $this->zamowienie_model->get_wycieczki();
  
   $this->load->view('templates/header', $data);
   $this->load->view('templates/sidebar', $data);
   $this->load->view('zamowienie/index', $data);
   $this->load->view('templates/footer', $data);
  }
  else
  {
   // wykonanie zapytania do bazy
   //$this->zamowienie_model->set_zamowienie();
  
   $this->load->view('templates/header');
   $this->load->view('templates/sidebar');
   $this->load->view('zamowienie/formsucces');
   $this->load->view('templates/footer');
  }
}
}


?&gt;
#2

[eluser]Mr. Pickle[/eluser]
I think using JavaScript to handle the form changes and make an ajax call to get the necessary data, would be a good solution here.





Theme © iAndrew 2016 - Forum software by © MyBB