Array
(
)

Chamando uma caixa de texto para vários elementos!

PHP
Israel Bango
   - 24 nov 2014

Boa tarde!
estou com alguma dúvida se alguém poder ajudar-me agradeceria bastante
é o seguinte:
tenho várias consultas do meu banco e coloquei um link, que quando clicado chama
uma caixa de texto e um botão! o problema está que só chama para o primeiro registro.
O link aparece para todos os registros mais quando clicado só aparece a caixa no
primeiro registro estou passando o código quem poder ajudar-me agradecerei bastante
Este trecho de código é que chama a caixa de texto e adiciona na div com id=caixa
obs:Será que é por chamar a caixa de texto na div com id=caixa? mas está dentro de um While!
por favor me ajudem!
#Código

  <!--    <a id='<?php $row->id_comentarios ?>' onclick=" var id=(this.id);document.getElementById('caixa').innerHTML='<form action=resposta.php  method=POST> <textarea cols=80 rows=5 name=msg > <?php echo $row->id_comentarios ?> </textarea><button type=submit name=enviar>Responder</button> </form>'">responder</a>        -->  

#Código
<?php
while($row = mysqli_fetch_object($SQL)):

 echo "Postado:"; echo $row->data_publicacao; echo'</br>'; 
 echo "Por:"; echo  $row->nome." ". $row->sobrenome;
 echo "<div class='box_usuario'><img width='70px' height='60x' src='Database_image_user/".$row->imagem."' alt='Foto_do_usuario'/>
  </div>"; 
 echo " ";
 
//Exibição
echo '<p>';
 echo  sprintf(' <p style="background-color:#9FC;border-radius:12px;"> %s  </p>',$row->texto_comentario); 
 ?>
<a id='<?php $row->id_comentarios ?>' onclick=" var id=(this.id);document.getElementById('caixa').innerHTML='<form action=resposta.php  method=POST> <textarea cols=80 rows=5 name=msg > <?php echo $row->id_comentarios ?> </textarea><button type=submit name=enviar>Responder</button> </form>'">responder</a> 
 </p>
  <a href="#">Respostas()</a>
<?php
echo"<div id='caixa'> </div>"; //Adiciona a caixa de texto nesta div
 endwhile;
?>


Ronaldo Lanhellas
   - 24 nov 2014

Bom, você não pode ter vários id 'caixa' na mesma página, o seu while está fazendo com que vários "<div id=caixa>" sejam criados, o que está errado. Você tem que de alguma forma diferenciar o id de cada item, tente assim:

#Código

$i = 1;
while($row = mysqli_fetch_object($SQL)):
 
 echo "Postado:"; echo $row->data_publicacao; echo'</br>'; 
 echo "Por:"; echo  $row->nome." ". $row->sobrenome;
 echo "<div class='box_usuario'><img width='70px' height='60x' src='Database_image_user/".$row->imagem."' alt='Foto_do_usuario'/>
  </div>"; 
 echo " ";
  
//Exibição
echo '<p>';
 echo  sprintf(' <p style="background-color:#9FC;border-radius:12px;"> %s  </p>',$row->texto_comentario); 
 ?>
<a id='<?php $row->id_comentarios ?>' onclick=" var id=(this.id);document.getElementById('caixa_$i').innerHTML='<form action=resposta.php  method=POST> <textarea cols=80 rows=5 name=msg > <?php echo $row->id_comentarios ?> </textarea><button type=submit name=enviar>Responder</button> </form>'">responder</a> 
 </p>
  <a href="#">Respostas()</a>
<?php
echo"<div id='caixa_$i'> </div>"; //Adiciona a caixa de texto nesta div
$i++;
 endwhile;
?>

Israel Bango
   - 24 nov 2014

Obrigado Ronaldo Lanhellas! funcionou! tive simplesmente que adicionar as tags de inicializaçao do php no nome do id que é referenciado dentro do getElementById
ficou assim getElementById(caixa_<?php echo $i ?>).

Tens me ajudando muito, obrigado! Deus o abençoe!

Ronaldo Lanhellas
   - 25 nov 2014


Citação:
Obrigado Ronaldo Lanhellas! funcionou! tive simplesmente que adicionar as tags de inicializaçao do php no nome do id que é referenciado dentro do getElementById
ficou assim getElementById(caixa_<?php echo $i ?>).

Tens me ajudando muito, obrigado! Deus o abençoe!


Isso mesmo. Agradeço, desejo o mesmo pra você.

Israel Bango
   - 25 nov 2014

Obrigado!