Ir para conteúdo

POWERED BY:

Arquivado

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

AlfredNeuman2

[Resolvido] Criar campo dinamico e cadastrar no banco de dados

Recommended Posts

Olá a todos, estou com uma duvida.

Preciso criar vários "selects" dinâmicos e depois cadastrar no banco de dados.

 

A parte de criar dinamicamente eu já consegui usando Ajax, mas não faço idéia de como gravar?

 

Alguém poderia dar uma ajuda.

 

Obrigado

 

Alfred

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um formulario com o campo TELEFONE

O usuario final pode adicionar dinamicamente novos campos do TELEFONE ( exemplo: http://img43.imageshack.us/img43/9237/camposn.gif )

 

Isso eu já fiz e esta OK, usando ajax.

 

Mas eu fiquei com duvida de como cadastrar isso no meu banco de dados.

Como saber quantos campos dinamicos o usuario final adicionou e como pegar os valores?

 

Obrigado

 

Alfred

 

 

Explique melhor seu problema, você criar campos ? gravar um registro pra cada select adicionado ? ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está criando um campo multivalorado, então deve colocar '[]' no atributo name do campo:

<input type="text" name="telefones[]"/>

 

Feito isso, no PHP você receberá um array com os valores do telefone:

$telefones = $_POST[telefone];
var_dump($telefones); //array

 

O que você pode fazer é armazenar tudo em um campo só no banco de dados, separando os valores, sei lá, por um ';', mas isso fere a normalização do SQL.

O mais correto seria criar uma tabela para armazenar o telefone e o id do usuário/cliente/etc, que seria uma chave estrangeira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você pode fazer é armazenar tudo em um campo só no banco de dados, separando os valores, sei lá, por um ';'

 

Não faça isso!!!

 

O mais correto seria criar uma tabela para armazenar o telefone e o id do usuário/cliente/etc, que seria uma chave estrangeira.

 

Esse é um caso interessante para utilizar um banco orientado a documentos. A estrutura do documento ficaria mais ou menos assim:

 

{
"name":"Fulano",
"address":"Rua dos bobos, 0",
"phone": [
	{
		"type":"cel",
		"number":"(99) 9999-99999"
	},
	{
		"type":"main",
		"number":"(99) 9999-9999"
	}
]
}

 

Um banco schemaless como o MongoDB, daria uma liberdade muito interessante para se montar uma lista de contatos desse tipo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua solução está aqui :seta: http://imasters.com.br/artigo/21066/desenvolvimento/afinal-o-que-e-uma-entidade Você vai separar a tabela 'contato' ou qualquer tabela que esteja relacionada aos telefones, então vai ter uma tabela unificada somente para contatos, como MSN, GTalk, Twitter, FB, Telefone Comercial ..

 

Afinal, não acho que seja necessário mais de 2 telefones, porque se o cara não atender em um, ou não atender em outro, ele não que é ser achado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, obrigado a todos.

 

Mais uma duvida, nao sei se pode colocar aqui, mas lá vai:

 

Outro formulario que recebe do banco de dados todos os registros de produtos cadastrados:

 

PRODUTO CODIGO PRECO

XPTO 01 10

AJB 02 20

IOED 03 30

MSNA 04 40

...etc...

 

Coloquei no nome de cada campo assim:

<input type="text" name="produto_1"> <input type="text" name="codigo_1"> <input type="text" name="preco_1">

<input type="text" name="produto_2"> <input type="text" name="codigo_2"> <input type="text" name="preco_2">

<input type="text" name="produto_3"> <input type="text" name="codigo_3"> <input type="text" name="preco_3">

 

Onde os números depois do underline sao colocados com um contador dentro de um "while", e no final eu recebo quantos campos tem.

 

<input name="total_registros" type="hidden" value="<?=$i;?>">

 

Agora minha duvida, preciso pegar todos os dados acima e inserir na tabela atraves de um laço "For"

 

for ($i=1; $i<=$total_registros; $i++)

{ }

 

Novamente, não consigo pegar as variáveis. Alguem pode dar uma ajuda?

 

 

OBS.: Estou fazendo estes scripts para estudo.

Desculpe se eu escrevi ou falei alguma besteira.

 

 

Obrigado a todos.

Alfred

Compartilhar este post


Link para o post
Compartilhar em outros sites

Execute assim ..

<html>
<head>
	<!--  -->
</head>
<body>
	<fieldset>
		<form method="POST">
			<input type="text" name="produto[]" value="Produto 1" />
			<input type="text" name="produto[]" value="Produto 2" />
			<input type="text" name="produto[]" value="Produto 3" />
			<input type="text" name="preco[]" value="19.90" />
			<input type="text" name="preco[]" value="29.90" />
			<input type="text" name="preco[]" value="39.90" />
			<input type="submit" value="Enviar" name="Submit" />
		</form>
	</fieldset>
	<?php 
	       if( isset ( $_POST[ 'Submit' ] ) ) {
	              for( $i = 0 , $x = count( $_POST[ 'produto' ] ) ; $i < $x ; ++ $i ) {
	                      echo 'Produto: ' , $_POST[ 'produto' ][ $i ] , '<br />';
	                      echo 'Preço: ' , $_POST[ 'preco' ][ $i ] , '<br />';
	              }
	       }
	?>
</body>
</html>

 

Estude como foi feito, e o resultado.

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.