Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Criando loops dinamicamente e validando

Recommended Posts

Pessoal, preciso de uma orientação. É mais uma ideia mesmo.

Seguinte.

Tenho um formulário que cadastra empresas. Cada empresa presta um determinado tipo de serviço ou mais que um.
Porem, só poderão se cadastrar empresas que prestem os tipos de serviços pré-configurados pelo site. Isto é, uma empresa entra para se cadastrar. Mas o serviço que ela presta não nos interessa (não esta na combobox) ela não poderá se cadastrar.

Tenho o código abaixo:

 

<?php    
 $contador2=0;
foreach($registros as $registro)
{
?>
   <label>Para <?php echo $registro;?> </label><br />
   <label>Tipo</label> : <input type="text" name="tipo[]" id="tipo<?php echo $contador2;?>" value="" /><br />
   <label>Qtde Pessoas</label> : <input type="text" name="qtde[]" id="qtde<?php echo $contador2;?>" value="" /><br />
   <label>Preço</label> : <input type="text" name="preco[]" id="preco<?php echo $contador2;?>" value="" /><br />
   <label>Descrição</label> : <input type="text" name="descricao[]" id="descricao<?php echo $contador2;?>" value="" /><br />
 
<?php
  $contador2++;
}
?>

Tenho um array $registro com o código dos ids dos serviços que nos interessam e que a empresa selecionou que possui.

Porem, como para cada serviço, pode haver varias situações, obviamente poderá ser cadastrada mais que uma situação.

Vamos supor que esta empresa disse que faz serviços de passeios. Então, ela pode cadastrar por exemplo:


passeio1 15pessoas 25,00 Descrição
passeio2 25pessoas 30,00 Descrição
passeio3 12pessoas 12,00 Descrição
.......

A empresa também presta serviço de hospedagem. Logo ela poderá cadastrar:


hospedagem1 04pessoas 100,00 Descrição
hospedagemo2 02pessoas 300,00 Hospedagem VIP
hospedagem3 02pessoas 80,00 ` Descrição
.......


Então minha dificuldade esta no fato de que não dá para sabermos quantos tipos de um determinado serviço a empresa quer cadastrar. Logo, será necessário criar um botão de 'adicionar outro tipo' por exemplo.

Porem, como manipularei as propriedades name e id desses campos novos de forma tal que conseguirei validar se os campos estão preenchidos corretamente, ainda que a empresa crie mais um campo e logo em seguida o delete,?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo no bd, você pode criar uma tabela para cada serviço que sua empresa tem interesse. Nesta tabela vai haver um chave estrangeira relacionando o serviço ao id de uma empresa na tabela empresas. Assim cada empresa poderá inserir um numero qualquer de entradas na tabela de serviço que ela oferece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Raoni, obrigado pelo retorno. Mas o problema nem é dos campos do BD. Mas como, à medida que vou adicionando ao formulário html (e cancelando), campos type='text' para entrar com os tipos para cada serviço, como validar se, após a primeira sequencia de 'n' tipos para o primeiro serviço vem outra sequencia de um 'n' tipos desconhecidos.

 

Entendeu a dificuldade? Como criar esses campos para que possam ser verificados.

 

 

Ok.

 

 

 

 

Imagine o seguinte:

 

a empresa escolhe (que presta) os servidos de id's 1, 3 e 5 (por exemplo),

Então, para cada um desses serviços, teremos 'n' tipos que a empresa pode cadastrar.

 

Imagine que o tipo 1 por exemplo é passeios.

 

Logo, ele cadastrará o tipo 1, = Passeio na mata, 5 pessoas 30,00 Passeio turistico na mata.........

 

Isso irá criar em html o seguinte:

<label>Tipo</label> : <input type="text" name="tipo[]" id="tipo1" value="" /><br /><label>Qtde Pessoas</label> : <input type="text" name="qtde[]" id="qtde1" value="" /><br /><label>Preço</label> : <input type="text" name="preco[]" id="preco1" value="" /><br /><label>Descrição</label> : <input type="text" name="descricao[]" id="descricao1" value="" /><br />

Após esse campo, a empresa tambem tem o tipo 2. E lá vaí:

<label>Tipo</label> : <input type="text" name="tipo[]" id="tipo2" value="" /><br /><label>Qtde Pessoas</label> : <input type="text" name="qtde[]" id="qtde2" value="" /><br /><label>Preço</label> : <input type="text" name="preco[]" id="preco2" value="" /><br /><label>Descrição</label> : <input type="text" name="descricao[]" id="descricao2" value="" /><br />

E assim por diante. E a empresa poderá tambem desistir (cancelar) uma nova inclusão de tipo. Por exemplo: Ela vai preencher 3 tipos. Mas daí, ela exclui o tipo 2. então, ficam os tipos 1 e 3.

Até ai tudo bem.

 

Porem, como a empresa selecionou que presta os serviços 1, e e 5, então, depois de cadastrar os tipos para o serviço 1, agora precisará cadastrar os tipos do serviço 3. Aí vem tudo de novo. E, como validar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que compreendi melhor o problema, você pode usar um select para selecionar o tipo, use javascipt para adicionar dinamicamente novos campos. Parecido com o que existe no google plus quando você adiciona um link na edição do perfil. custei a fazer isso a algum tempo atras com uma função que usa o innerHTML.

 

Com javascript da para fazer o incremento e colocar o form corretamente, javascript nunca foi o meu forte acho que não posso ajudar muito neste ponto.

 

Particularmente eu separaria os forms dos diferentes serviços de forma que se empresa quiser cadastrar outro tipo ela teria de ativamente clicar no link do respectivo form algo como "cadastrar serviço X".

 

Outra ideia é uma sequencia dinâmica. Semelhante ao que acontece com o cadastro no site submarino. Primeiro vem um form de um respectivo tipo de serviço onde a empresa pode adicionar novos campos dinamicamente com a ideia do javascript acima. Depois ela clica em "continuar" e vem o form de outro tipo serviço no mesmo esquema javascript, assim os forms dos tipos diferentes ficam separados. Essa ideia é mais adequada quando a empresa faz o cadastro assim em uma pagina anterior pode-se usar um check box para que ela marque os serviços que deseja oferecer e depois em sequencia ela vai recebendo os forms conforme ela marcou. Se a empresa desistir de um tipo ela pode simplesmente clicar em "pular esta parte" se depois quiser cadastrar outro tipo ele pode entrar em seu painel administrativo e fazer como no paragrafo anterior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom é quase isso.

 

No processo de cadastro da empresa, tem lá na primeira etapa do cadastro:

 

nome, endereço, tel................

E tambem tem umas chekboxs com os serviços que nós queremos saber se ela presta.

Eis o link:

 

 

http://www.dinamicaimoveis.com.br/morrodesaopaulo.inf.br/cadastrar.php?acao=form

 

quando clika em cadastra empresa, vai para a faze dois (apenas offline-localhost),

 

Nela, eu tenho indo do $_POST, um array de serviços que são os chekboxs.

 

Dai estou fazendo um foreach neste array.

 

Acontece que para cada serviço, como por exemplo, passeios, a empresa pode ter 'n' tipos. Entende.

 

Logo, será necessário que se crie várias vezes um conjunto de campos concernetes ao tipo.

 

Daí a dificuldade de gerra esse loop

 

Sinta-se à vontade para cadastrar uma empresa fictissea

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.