Ir para o conteúdo
agent369

Objecto para criar vários forms

Mensagens Recomendadas

agent369

Boas, então é assim, tenho de criar 40 formulários que podia fazer perfeitamente à unha e criar 40 ficheiros, mas a minha ideia era criar uma class em que passa-se só o nome da tabela da BD e ele identifica o tipo de cada campo dessa tabela e fizesse echo do html

por exemplo na tabela:

user_id INT auto_increment

user_email varchar

user_password varchar

user_dt_nasc DATE

e ele fazia um for por cada campo da tabela e um if simples:

if ($field_type == "varchar") echo "<input type="text" text="">;

elseif ($field_type == "INT") echo ...

sei que dá para fazer que já vi um exemplo, mas a minha dúvida é se uma boa maneira de gerar formulários ou não.

Obrigado desde já ;)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

é uma ideia ...

se é boa ideia ? depende de :

- nessas tabelas tens campos que não queres que apareçam ?

- achas que tens conhecimentos suficientes para criar essa classe rapidamente ?

- achas que consegues organizar o formulário de maneira aceitável com os dados vindos da estrutura da tabela ?

- achas que consegues distinguir todos os tipo de dados e as suas nuances, e aplicar nos diferentes tipos de elementos de input de forma transparente ?

- depois de responder à perguntas anteriores, achas que é mais rápido ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fil79

Pode funcionar, mas precisas de ter muita coisa em atenção, como disseram. Podes começar por algo como isto e depois desenvolver, ou seja saber quais os campos de determinada tabela e seu tipo de dados

Class Form{

public function   listaCampos($tabela,$naoInclui,$campos_obrigatorios){

	$sql="SHOW COLUMNS FROM ".$tabela;

	$resultado=mysql_query($sql);
	return $this->constroiForm($resultado,$naoInclui,$campos_obrigatorios);
}

}

Editado por fil79

MCITP-MCTS-MCP

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Devexz

é uma ideia ...

se é boa ideia ? depende de :

- nessas tabelas tens campos que não queres que apareçam ?

- achas que tens conhecimentos suficientes para criar essa classe rapidamente ?

- achas que consegues organizar o formulário de maneira aceitável com os dados vindos da estrutura da tabela ?

- achas que consegues distinguir todos os tipo de dados e as suas nuances, e aplicar nos diferentes tipos de elementos de input de forma transparente ?

- depois de responder à perguntas anteriores, achas que é mais rápido ?

Estas questões vieram-te logo à cabeça como se fosse um raio ou estiveste a pensar durante 5min? (não estou a gozar). :P


Ás vezes, mais vale deixar a assinatura em branco.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Estas questões vieram-te logo à cabeça como se fosse um raio ou estiveste a pensar durante 5min? (não estou a gozar). :P

quando caminhas, pensas onde vai pousar os pés em cada passo ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
agent369

comecei a analisar melhor e já estava a ver que ia dar muita confusão por causa de campos como anexos que estão em varchar, e foreign keys etc.

optei antes por prolongar a minha array, eu já tinha até à parte do select que até aí era apenas usada para construir o menu e as tabelas, e agora adicionei do form para baixo, certamente não é a melhor maneira mas por enquanto funciona.

"funcionarios" => array(
"dados" => array(
 "name" => "dados",
 "icon" => "user",
 "text" => "Dados",
 "select" => "SELECT bla bla bla from worker",
 "form" => array(
  "type" => array("text(45)","text(45)", "text(45)", "int", "int", "int", "date", "textarea(200)"),
  "name" => array("worker_name", "worker_adress", "worker_email", "worker_cc", "worker_nib", "worker_niss", "worker_dt_birth", "worker_obs"),
  "text" => array("Nome: ", "Morada: ", "E-Mail: ", "Cartão Cidadão: ", "NIB: ", "NISS: ", "Data Nascimento: ", "Observações: ", ),
  ),
 ),

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fil79

Realmente não é pacifico de todo. Eu tenho 3 classes (READ, CREATE, UPDATE) que me facilitam muito a vida. Mas as mesmas

por vezes têm de ser adaptadas de aplicação para aplicação devido a todas as condicionantes apresentadas.

Mas mesmo assim acabo por poupar muito tempo!


MCITP-MCTS-MCP

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
agent369

não é pacifico como assim?

sim eu também tenho 3 classes, a de select, insert e update. Poupam imenso tempo em criar variáveis, ciclos while etc

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fil79

não é pacifico como assim?

sim eu também tenho 3 classes, a de select, insert e update. Poupam imenso tempo em criar variáveis, ciclos while etc

Não estavas a dizer que querias uma classe que lesse os campos de uma determinada tabela e criasse automaticamente forms?? é isso que fazem, para novos registos, updates ou somente para leitura


MCITP-MCTS-MCP

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Devexz

quando caminhas, pensas onde vai pousar os pés em cada passo ?

não? ainda não percebi onde queres chegar :confused:

jackie-chan-meme.jpg


Ás vezes, mais vale deixar a assinatura em branco.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Kami was taken

não? ainda não percebi onde queres chegar :confused:

jackie-chan-meme.jpg

Foi uma pergunta retórica... É o mesmo que dizer: "Quando fazes algo constantemente, acabas por fazê-lo de forma tão fácil que parece automática".

Digo isto porque pensei exatamente nos mesmos problemas.

Abraço!


L, did you know Shinigami only eat apples?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.