Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

09-01-2014 19:54

Olá, preciso de ajuda...
Como usar variavel do PHP como name do input?

<form name='form' method='POST' action='enviar.php?add=dados&id=<?echo$id?>'> <input name='<?echo$id?>' type='text'> <input type='submit' value='submit'> </form>

=== ENVIAR.php ===
if($_GET['add']=="dados") { $id = $_GET["id"]; $dado = $_POST['$id']; //ISSO É IMPOSSÍVEL!!!! (...) } 

===============

Ajude, por favor... Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Usar variavel do PHP como name do input

10-01-2014 08:03

Para a lógica funcionar, a variável tem que ter sido criada antes da utilização.

Nesse seu código, parece que você está tentando usar a variável sem ter sido criada.

<input name='<?echo$id?>' type='text'>

Explica melhor como funciona seu sistema.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

10-01-2014 13:48

ESTÁ ASSIM:

<? $sql = "SELECT * FROM tabela"; $sql = mysql_query($sql) or die (mysql_error()); while($row = mysql_fetch_array($sql)){ $id = $row['id']; ?> <? if ($_SESSION['erro1'] != '') { echo $_SESSION['erro1']; } ?> <form name='form' method='POST' action='enviar.php?add=dados&id=<?echo$id?>'> <input name='<?echo$id?>' type='text'> <input type='submit' value='submit'> </form> <? } ?>


if($_GET['add']=="dados") { $id = $_GET["id"]; $dado = $_POST['$id']; //ISSO É IMPOSSÍVEL!!!!     if(!($dado)) {     $_SESSION['erro1'] = "Você não digitou nenhum texto!";     echo "<script language='javascript'>;history.go(-1);</script>";     } else {     $_SESSION['erro1'] = "Você digitou um texto.!";     } }  

RESULTADO:
Você não digitou nenhum texto!
----------------
O name do campo não está funcionando... não está lendo $_POST['$id']
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Usar variavel do PHP como name do input

10-01-2014 16:57

Pelo que entendi sua consulta vai retornar vários ids.

O melhor a fazer é criar um campo para o id, tipo:

<input type="text" name="id" value="<?php echo $id; ?>">

Ai você pega o id pelo post

$id = $_POST["id"]; 

Lembrando que as tags em PHP devem estar completas

<?php //e  ?> <?php echo "texto"; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

10-01-2014 17:14

Mas VALUE tem que levar o texto que eu digitar.
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

10-01-2014 17:24

Na página de envio (enviar.php) tem: $id = $_GET["id"];
Na página do form, existem vários form's...
Quando dá algum erro:
if ($sql != 1) { $_SESSION['erro1'] = 'Falha ao tentar enviar dados! Tente novamente.'; $_SESSION['dado_er'] = $dado; echo "<script language='javascript'>;history.go(-1);</script>"; exit(); }  

O form tem que voltar preenchido, por isso: value='<? echo $_SESSION['dado_er']; ?>'

O QUE ESTÁ ACONTECENDO:
Na página do form existem vários form's, e quando um erro acontece e retorna, está preenchendo o campo de todos os form's...
Eu queria que, ao retornar, somente o form com aquele id estivesse preenchido.
O erro está acompanhando o form que retornou numa boa, mas o campo de todos os form's ficam preenchidos.

Minha idéia estáem: enviar o id junto com este campo, pois se algum erro acontecer e retornar, somente o campo com ESTE ID ficará preenchido.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Usar variavel do PHP como name do input

10-01-2014 19:21

Dá uma olhada nesse exemplo

<form action="teste.php?campo=campo1" method="post"> <input type="text" name="campo1" value="<?php if($_GET['campo']=="campo1") echo "esse campo"; ?>"> <input type="submit" name="submit"> </form>   <form action="teste.php?campo=campo2" method="post"> <input type="text" name="campo2" value="<?php if($_GET['campo']=="campo2") echo "esse campo"; ?>"> <input type="submit" name="submit"> </form>


<?php if(isset($_POST['submit'])) { echo "<script>location.href='teste.php?campo={$_GET['campo']}'</script>"; } ?>

Você vai observar que usei 2 formulários, campo1 e campo2.

Esses números você pode colocar o id da consulta no lugar, exemplo:

campo<?php echo $id; ?>

Quando enviar os dados, de acordo com a resposta, vai usar o location.href para voltar ao documento, passando o id que foi enviado para o mesmo novamente.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

10-01-2014 21:23

Continua a mesma coisa ao chegar lá...
$dado= $_POST['campo$id']; var_dump($dado);  

IMPRESSÃO:
NULL
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

11-01-2014 03:39

Deu certo assim:

<form action='envia.php?add=dados&id=<?echo$id?>'> //envio o id pelo nome do campo, junto com tudo que preciso <input name='dado<?echo$id?>' value='<? echo "$_SESSION['dado'.$id]" ?>> //envio o id pelo nome do campo


$dado = $_POST['dado'.$id]; //recupero o id pelo nome do campo no POST //Então recupero os dados digitados usando session, quando há um erro, somente no form de onde enviei: if ($sql != 1) { $_SESSION['erro1'] = 'Falha no processamento! Tente novamente.'; $_SESSION['dado'.$id] = $dado; echo "<script language='javascript'>;history.go(-1);</script>"; }

Para limpar os campos, caso desistir de enviar, uso:
<a href='index.php?area=associado&cancel=del'>Cancelar envio</a> <? if ($_GET['cancel'] == 'del') { $_SESSION['dado'.$id] = ''; $_SESSION['erro1'] = ''; echo "<script>top.location.href='javascript:history.back(1)';</script>"; } ?>

Mas agora, a sessão $_SESSION['dado'.$id] não está limpando mais... ela fica lá, intacta!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Usar variavel do PHP como name do input

11-01-2014 08:32

Você deve passar o $id para dentro do if do cancelamento. Caso contrário a id que compõe o nome da SESSION não é identificada e apagada.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Usar variavel do PHP como name do input

11-01-2014 14:44

Isso mesmo web, vc é o cara!
Muito obrigado por gastar um pouco do seu tempo comigo.
O motivo de não "limpar" era a localização do script na página, pois ele teria que pegar o id novamente e como o select estava abaixo, isso não funcionava...
Mas como o id era retornado também para a localização do erro na área correta, assim: $erro1_id
mudei para: $_SESSION['dado'.$erro1_id] = '';

Valeu meu amigo, Deus te ilumine mais!
0

Quem está online

Usuários navegando neste fórum: Bing [Bot]