Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] mandar resultado de consulta php a textarea con javascript

Estas en el tema de mandar resultado de consulta php a textarea con javascript en el foro de Javascript en Foros del Web. Buenas a tod@s! Estoy intentando meter el resultado de una consulta realizada a la bd con php dentro de un textarea que tengo dentro de ...
  #1 (permalink)  
Antiguo 22/04/2013, 02:45
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 2
Exclamación mandar resultado de consulta php a textarea con javascript

Buenas a tod@s!

Estoy intentando meter el resultado de una consulta realizada a la bd con php dentro de un textarea que tengo dentro de un formulario.

La consulta SQL devuelve el resultado esperado. En el echo pongo

Código PHP:
echo "<script type='text/javascript'>
                                                document.forms.frmintro.pl_nm.value='"
.addslashes($row['pl_nm'])."';
                                                
                                                </script>"

Si miro el código fuente, veo que toma el valor resultado correctamente, pero el textarea no muestra el contenido..

No veo que es lo que falla, a parte, firebug me devuelve el siguiente error:


Cita:
TypeError: document.forms.frmintro is undefined
document.forms.frmintro.pl_nm.value='Cala Rovellada';
El nombre del formulario es correcto...Que me estoy dejando??

Muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 22/04/2013, 06:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: mandar resultado de consulta php a textarea con javascript

Si ese script aparece antes del textarea en el HTML te dará ese error. Puedes usar el evento onload para realizar la modificación.

Aunque lo mejor sería imprimir directamente el valor dentro del textarea en lugar de usar Javascript para el efecto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/04/2013, 01:56
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: mandar resultado de consulta php a textarea con javascript

Hola David, gracias por responder!

Efectivamente el javascript me estaba apareciendo antes del html...

Perdona por la novatada pero no se por dónde ponerlo... me estoy liando.
He probado a mandarlo des de php, ponerlo dentro de una función javascript que llamo des de onload... pero no lo logro.

La cosa es que montado con el mismo php en el textarea sí funciona, pero se trata de un formulario que me tiene que servir para ver la información de la bd, modificarla si es necesario y volverla a enviar. Por eso estaba montando un php que hiciera la consulta y me lo escribiera en los sitios correspondientes y, en caso que no hubiera nada en la BD, que recogiera los datos introducidos por el método post, no se si me explico bien.

Te lo pongo por si me ves el fallo...

Código PHP:
if (Empty($_POST)) {
        
  include (
'connexio.php');
    
    
$sql_1 "Select platja_cala.pl_id, platja_cala.pl_nm as pl_nm, platja_cala.pl_nm2 as pl_nm2   from platja_cala where platja_cala.pl_id = '".$pl_id."'";
    
    
$sql_gran"Select platja_cala.pl_img1 as pl_img1, platja_cala.pl_img2 as pl_img2, platja_cala.pl_img3 as pl_img3, acces.ac_id, acces.ac_nm as ac_com, acces.ac_desc as ac_desc, acces_tipus.actp_id, acces_tipus.actp_desc as actp_desc, servei.sv_id, servei.sv_nm as sv_nm, sorra.sr_id, sorra.sr_desc as sr_desc, fons.fn_id, fons.fn_desc as fn_desc, entorn.en_id, entorn.en_desc as en_desc, dificultat.dif_id, dificultat.dif_tp as dif_tp, rel_pl_actp.id_rel, rel_pl_actp.pl_id, rel_pl_actp.actp_id, rel_pl_sv.id_rel, rel_pl_sv.pl_id, rel_pl_sv.sv_id 
    from platja_cala, acces, acces_tipus, servei, sorra, fons, entorn, dificultat, rel_pl_actp, rel_pl_sv 
    where platja_cala.fn_id = fons.fn_id and platja_cala.ac_id = acces.ac_id and platja_cala.sr_id = sorra.sr_id and platja_cala.en_id = entorn.en_id and acces.dif_id = dificultat.dif_id and platja_cala.pl_id = rel_pl_actp.pl_id and acces_tipus.actp_id = rel_pl_actp.actp_id and platja_cala.pl_id = rel_pl_sv.pl_id and servei.sv_id = rel_pl_sv.sv_id "
;
  
  
$query_petita pg_exec($dbconn,$sql_1) or die (odbc_errormsg());
  
  while (
$row pg_fetch_array($query_petita))        
                                        {
                                            echo 
"<script type='text/javascript'>
                                                function write(){
                                                document.forms.frmintro.pl_nm.value='"
.addslashes($row['pl_nm'])."';
                                                }</script>"
;
  }
  
  
  
$query_gran pg_exec($dbconn,$sql_gran) or die (odbc_errormsg());
  
  while (
$row pg_fetch_array($query_gran))        
                                        {
                                            echo 
"<script type='text/javascript'>
                                                document.getElementById('ac_com').value="
.addslashes($row['ac_com']).";
                                                document.getElementById('ac_desc').value="
.addslashes($row['ac_desc']).";
                                                //document.getElementById('actp_id').value="
.$row['actp_id'].";
                                                //document.getElementById('sv_id').value="
.$row['sv_nm'].";
                                                document.getElementById('sr').value="
.$row['sr_desc'].";
                                                document.getElementById('fn').value="
.$row['fn_desc'].";
                                                document.getElementById('en').value="
.$row['en_desc'].";
                                                document.getElementById('dif').value="
.$row['dif_tp'].";
                                                document.getElementById('img1').value="
.$row['pl_img1'].";    document.getElementById('img2').value=".$row['pl_img2'].";    document.getElementById('img3').value=".$row['pl_img3'].";    
                                                
                                            </script>"
;    
                                            
                                             
                                        };
                                
$dbconnpg_close();

}
else{
    
//aquí va el código de los $_POST 
mi textarea tal como está ahora:

Código HTML:
<div id="dades" style="position:relative;left:25%;">
	<form id="frmintro">
		<table id="part1" class="cont_frm1" >
			<div id="part1" class="cont_frm1" style="">
				<p><label><span class="forms">Nom:</span></label><textarea id="pl_nm" onload="javascript:write()" name="pl_nm" value="<?php echo (isset($_POST ['pl_nm']))?$_POST ['pl_nm']:'';?>">
						<?php
						
						?>
	</textarea></p> 
Y esto es la función que había preparado en javascript:

Código:
function init() {

	function write(){
				<?php
				if (Empty($_POST)) {
       
				include ('connexio.php');
		
				$sql_1 = "Select platja_cala.pl_id, platja_cala.pl_nm as pl_nm, platja_cala.pl_nm2 as pl_nm2   from platja_cala where platja_cala.pl_id = '".$pl_id."'";
				$query_petita = pg_exec($dbconn,$sql_1) or die (odbc_errormsg());
  
				while ($row = pg_fetch_array($query_petita))		
										{
											echo "									
												document.getElementById('pl_nm').value='".addslashes($row['pl_nm'])."';
												";
										}
				}
				
				?>
				};
	};

A ver si entre todo este jaleo consigo hacer algo, me llevo peleando con ello ya muuuuchos días

Muchas gracias por tu ayuda!
  #4 (permalink)  
Antiguo 23/04/2013, 02:14
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: mandar resultado de consulta php a textarea con javascript

Ya lo he solucionado!

NOTA: A veces lo más simple da mejor resultado

Después de la consulta he dejado así el php:

Código PHP:
while ($row pg_fetch_array($query_petita))        
                                        {
                                        
$resultq1addslashes($row['pl_nm']);
                                                        
                                                        
    } 
He eliuminado la función javascript, el onload y simplemente dentro del textarea he añadido:

Código PHP:
<?php
                        
echo $resultq1;
                        
?>
Más fácil no podía ser... gracias de todos modos!!!

Etiquetas: formulario, php, resultado, textarea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:27.