Welcome Guest, Not a member yet? Register   Sign In
DropDown - OnChange - SQL Query
#1

[eluser]Unknown[/eluser]
Greetings,

I am working in a web interface that will do some queries in a MySQL database. So far I am working in the SELECT queries through DropDown boxes and its lists are based on others queries.

What I am trying to do is to update the lists based on the choise made at the dropdown box.

Example:
DropDown_OSS - OnChange: Update the query on DropDown_Date, DropDown_Type, DropDown_Element
DropDown_Date - OnChange: Update the query on DropDown_Type, DropDown_Element
DropDown_Type - OnChange: Update the query on DropDown_Element
DropDown_Element - OnChange: Update the query that will run in another View (problem way ahead)

I designed the lists based on functions (specthat run the queries on the database, but the queries' criterions have to be based on the value selected on the DropDowns. Some one has any advice??

Right below are my codes.

Controler Welcome
Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

public function index()
{
  $this->load->model("Consultas_DropBox_Model"); // Carrega o modelo especificado (é especificado o nome do arquivo)
  $Result_Oss = $this->Consultas_DropBox_Model->Func_Oss(); // Executa a função que está declarada dentro do modelo especificado (já carregado) e armazena o resultado na variável Result_Oss
  $Result_Data = $this->Consultas_DropBox_Model->Func_Data(); // Executa a função que está declarada dentro do modelo especificado (já carregado) e armazena o resultado na variável Result_Data
  $Result_TipoElemento = $this->Consultas_DropBox_Model->Func_TipoElemento(); // Executa a função que está declarada dentro do modelo especificado (já carregado) e armazena o resultado na variável Result_TipoElemento
  $Result_NomeElemento = $this->Consultas_DropBox_Model->Func_NomeElemento(); // Executa a função que está declarada dentro do modelo especificado (já carregado) e armazena o resultado na variável Result_NomeElemento

  foreach ($Result_Oss as $Linha)
  { $data["Oss"][] = $Linha->oss; } // Para cada valor armazenado no array Result_Oss, ele irá armazenar o valor no array multidimensional 'data', "Oss" especifica a "coluna" do array
  // $Linha->oss especifica a coluna "OSS" dentro da variável Linha criada dentro do foreach
  
  foreach ($Result_Data as $Linha)
  { $data["Data"][] = $Linha->data; } // Para cada valor armazenado no array Result_Data, ele irá armazenar o valor no array multidimensional 'data', "Data" especifica a "coluna" do array

  foreach ($Result_TipoElemento as $Linha)
  { $data["TipoElemento"][] = $Linha->tipo_elemento; }  // Para cada valor armazenado no array Result_TipoElemento, ele irá armazenar o valor no array multidimensional 'data', "tipo_elemento" especifica a "coluna" do array
  
  foreach ($Result_NomeElemento as $Linha)
  { $data["NomeElemento"][] = $Linha->elemento; }  // Para cada valor armazenado no array Result_TipoElemento, ele irá armazenar o valor no array multidimensional 'data', "elemento" especifica a "coluna" do array
  
  $data["Pagina1"] = "Teste_DropBox"; // Especifica o valor "Teste_DropBox" (que será a view a ser carregada) dentro do índice Pagina1 do array 'data'
  $this->load->view("principal",$data); // Carrega a View 'Principal' (que será a página principal a ser exibida) e leva o array 'data' como variável
}

}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

View Principal
Code:
<!DOCTYPE html>
&lt;html lang="en"&gt;
&lt;!-- INÍCIO DO CÓDIGO A SER EXIBIDO NA PÁGINA--&gt;
&lt;body&gt;
<h1>Welcome to CodeIgniter!</h1>
<div id="container">
&lt;?php
  $this->load->view($Pagina1);
?&gt;
</div>
<div id="container">
&lt;?php
#  $this->load->view("welcome_message");
?&gt;
</div>
<div id="container">
<p.footer>Rodape</p.footer>
</div>
&lt;/body&gt;
&lt;!-- FIM DO CÓDIGO A SER EXIBIDO NA PÁGINA--&gt;
&lt;/html&gt;

View Teste_DropBox
Code:
&lt;?php

foreach($Oss as $Oss1)
{ $ListaDropOss[$Oss1] = $Oss1; }
foreach($Data as $Data1)
{ $ListaDropData[$Data1] = $Data1; }
foreach($TipoElemento as $TipoElemento1)
{ $ListaDropTipoElemento[$TipoElemento1] = $TipoElemento1; }
foreach($NomeElemento as $NomeElemento1)
{ $ListaDropNomeElemento[$NomeElemento1] = $NomeElemento1; }

echo form_open('teste');
echo form_dropdown('Oss',$ListaDropOss,null);
echo form_dropdown('Data',$ListaDropData,null);
echo form_dropdown('TipoElemento',$ListaDropTipoElemento,null);
echo form_dropdown('NomeElemento',$ListaDropNomeElemento,null);
echo form_close();

Model Consultas_DropBox_Model
Code:
&lt;?php
class Consultas_DropBox_Model extends CI_Model {

    function Func_Oss()
    {
        $query = $this->db->query("SELECT DISTINCT SYRIP.oss FROM SYRIP ORDER BY SYRIP.oss");
        return $query->result();
    }

    function Func_Data()
    {
        $query = $this->db->query("SELECT DISTINCT SYRIP.data FROM SYRIP ORDER BY SYRIP.data DESC");
        return $query->result();
    }

    function Func_TipoElemento()
    {
        $query = $this->db->query("SELECT DISTINCT SYRIP.tipo_elemento FROM SYRIP ORDER BY SYRIP.tipo_elemento ");
        return $query->result();
    }

   function Func_NomeElemento()
    {
        $query = $this->db->query("SELECT DISTINCT SYRIP.elemento FROM SYRIP ORDER BY SYRIP.elemento");
        return $query->result();
    }
}




Theme © iAndrew 2016 - Forum software by © MyBB