peripatus 0 Denunciar post Postado Setembro 29, 2013 Boa noite! Tenho um formulário dinâmico, que pode ter até N campos. Os campos tem a seguinte nomeclatura: $ref_bib_0 $ref_bib_1 $ref_bib_2 e assim por diante. Preciso inserir um a um no meu banco, através de um LOOP. for($i = 0; $i < $numReferencias; $i++){ $var = eval("\$ref_bib_" . $i .";"); } Tentei isto, mas não obtive sucesso. Preciso pegar a variável, verificar seu valor através deste método: (empty ($_POST['xxx']) ? "null" : $_POST['xxx']); E logo após, inserir no banco. Estou com dificuldades em referenciar as variáveis que eu tenho para ir inserindo no banco, uma a uma. Alguém pode me ajudar? Grato Compartilhar este post Link para o post Compartilhar em outros sites
fsnasser 1 Denunciar post Postado Setembro 30, 2013 Nesse formulário dinâmico você pode criar um campo de qualquer tipo? Se for apenas de um tipo você pode criar uma tabela contendo apenas os valores dos campos variáveis com uma referência ao ID dos outros dados gravados pelo formulário. Tabela do formulário: - ID; - Nome; - Etc. Tabela dos campos variáveis: - ID; - FID (grava o id do formulário); - Dados do campo. Assim, toda vez que você consultar os dados do formulário poderá, também, recuperar os campos. Compartilhar este post Link para o post Compartilhar em outros sites
peripatus 0 Denunciar post Postado Outubro 1, 2013 Não entendi bem o que vc quiz dizer. Já há uma tabela para inserir os valores das variáveis que preciso. Elas são apenas números, que são os IDs das referências! Alguém poderia me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
fsnasser 1 Denunciar post Postado Outubro 1, 2013 O que você quer é concatenar os nomes dos campos e colocar essa string no BD? Ou gravar o nome dos campos 1 a 1 no BD? Em que variável você recebe o nome dos campos do form? Compartilhar este post Link para o post Compartilhar em outros sites
peripatus 0 Denunciar post Postado Outubro 2, 2013 Eu tenho várias variáveis no meu formulário.. a nomeclatura delas segue esse padrão: $ref_bib_1 $ref_bib_2 $ref_bib_3 etc.. E cada uma tem um valor diferente para ser inserido no banco. Preciso inseri-las! É ísso! Não sei como irei percorrê-las em php Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Outubro 2, 2013 http://forum.imasters.com.br/topic/507023-arrays-ainda-mais-dinmicos-do-que-j-so/ Compartilhar este post Link para o post Compartilhar em outros sites
peripatus 0 Denunciar post Postado Outubro 2, 2013 Consegui fazer sozinho aqui.. sem lero lero solução $var = 0; for($i = 0; $i <= $numReferencias; $i++){ eval("\$var = \$_POST['ref_bib_".$i."'];"); if(!empty ($var)){ $query = "INSERT INTO obra_refbibliografica (codObra, codReferencia) values (". $ultimoID. "," .$var.")"; $result = mysql_query($query)or die (mysql_error()); } } Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Outubro 2, 2013 O PHP tem "variáveis variáveis". $ref_1 = 1; $ref_2 = 2; $ref_3 = 3; $total = 0; for($i=1; $i<=3; $i++){ $total += ${'ref_'.$i}; } Sugestão: evite com todas as suas forças, vontades e desejos utilizar o eval. eval é do mal e pode trazer coisas ruins ao seus códigos. Utilize-o somente com a aprovação de um ser supremo com nível de defesa 15 ou superior :) @braços Compartilhar este post Link para o post Compartilhar em outros sites
Diegus Miestro 21 Denunciar post Postado Outubro 2, 2013 Eu acho que usar Array é bem melhor $ref_bib = array(); $ref_bib[0]; $ref_bib[1]; $ref_bib[2]; for($i = 0; $i < $numReferencias; $i++){ $var = $ref_bib[i]; } Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Outubro 3, 2013 Se for array, não precisa nem de for $total = array_sum($lista); Compartilhar este post Link para o post Compartilhar em outros sites
Thadeu Esteves 3 Denunciar post Postado Outubro 3, 2013 Ainda acho que o que ele quer é criar uma funcao que pegue os valores dos posts entao, usando Registry tem como fazer isso tipo: function array_from_post($fields){ $data = array(); foreach($fields as $field){ $data[$field] = $_POST[$field]; } return $data; } Usando a funcao: $data = array_from_post(array('ref_1,'ref_2,'ref_3')); echo $data['ref_1']; //imprimi o valor do post ref_1; Compartilhar este post Link para o post Compartilhar em outros sites
Raul Silva 41 Denunciar post Postado Outubro 3, 2013 Porque não coloca os nomes dos campos como input name="ref[]" ? Assim seu post irá como um array e você não terá que fazer essa gambiarra toda, ficará bem mais simples. Compartilhar este post Link para o post Compartilhar em outros sites