Foros del Web » Programando para Internet » PHP »

como paso el contenido de Textarea a php

Estas en el tema de como paso el contenido de Textarea a php en el foro de PHP en Foros del Web. Tengo la siguiente linea, en la cual paso 3 valores, los cuales estan alli y pasan el firstName y surname, pero el rdf no pasa ...
  #1 (permalink)  
Antiguo 19/01/2005, 09:53
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
Información como paso el contenido de Textarea a php

Tengo la siguiente linea, en la cual paso 3 valores, los cuales estan alli y pasan el firstName y surname, pero el rdf no pasa el valor a la variable (este rdf es un textarea):

<input value="Save" type="submit" onClick="parent.location='almacena1.php?firstName= '+surname.value+firstName.value+'rdf'+rdf.value">< br>


En mi Php, pasa los varoles de firstName y surname, en la variable $datos1 no se almacena el contenido que hay en el textarea
$apellido = $_GET[surname];
$nombre = $_GET[firstName];

$datos1 = $_POST[rdf]; //datos del text Area

que puedo hacer, alguien me puede ayudar por favor.
Gracias
  #2 (permalink)  
Antiguo 19/01/2005, 10:05
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Estas usando javascript para enviar los datos por la URL y no le encuentro sentido (pues no veo que se filtren o validen o algo)
Cambialo por:
Código HTML:
<input value="Save" type="submit"><br> 
y en la etiqueta HTML donde creas el formularios indica el metodo GET. Ej.
Código HTML:
<form method="GET" action="'almacena1.php"> 
Saludos

Última edición por fran86; 19/01/2005 a las 10:07
  #3 (permalink)  
Antiguo 19/01/2005, 10:10
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Otra cosa (y debe ser por esto que no te anda)
Código PHP:
$apellido $_GET[surname];   // ACA busca las variables enviadas a traves de la URL
$nombre $_GET[firstName]; // y tambien aqui.

//$datos1 = $_POST[rdf];    pero la variable $_POST no hace eso!
$datos1 $_GET[rdf];    // tienes que usar $_GET 
chausitos
  #4 (permalink)  
Antiguo 19/01/2005, 10:19
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 13 años, 1 mes
Puntos: 1
hola

disculpa pero concuero con fran86
no tiene sentido que uses javascript para pasar datos de una pagina a otra y mas si es con php

con php es mas sensillo recojer lo que biene de los cuadro de teto de un form
por ejemplo tiene un formulario donde tiene tres campos

Código HTML:
<form name="form1" method="post" action="test.php">
  <input name="nombre" type="text" id="nombre">
  <input name="edad" type="text" id="edad">
  <input name="apellidos" type="text" id="apellidos">
  <input type="submit" name="Submit" value="Enviar">
</form> 
cuando mades el formulario a la pagina test.php

cuando llege pregunta por los campos asi
Código PHP:
$HTTP_POST_VARS['nombre'];
$HTTP_POST_VARS['edad'];
$HTTP_POST_VARS['apellidos'
despues lo puedes usar como quieras
espero que te sirva.
Salu2s alexjnm
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #5 (permalink)  
Antiguo 19/01/2005, 10:20
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
bueno amigos ya utilice el GET y no funciona, me da los demas valores pero no el del textarea.
prove como dice fran86 y tampoco funciona.

$datos1 = $_GET[rdf]; // el problema es aqui que no me entrega el contenido

que puedo hacer?
  #6 (permalink)  
Antiguo 19/01/2005, 10:22
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Parece como si quisiera enviar parte de los datos por get y el resto por post, pero como el onclick en el cliente se activa antes que la acción de submit lo único que envía son las variables por url y no llegan las variables por post.

Mucho mejor si prescindes del javascript y envías el form con un sólo método
  #7 (permalink)  
Antiguo 19/01/2005, 10:27
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
El codigo esta en html y para pasar los datos como dice tunait, los paso por el url, que es la manera que logro hacerlo, pero no pasa el textarea.
codigo html

<html>
....

<input value="Save" type="submit" onClick="parent.location='almacena.php?firstName=' +firstName.value+surname.value+'rdf='+rdf.value">< br>

....
</html>

Este es mi PHP: almacena.php
<?php
include "parameters1.php";

$apellido = $_GET[surname];
$nombre = $_GET[firstName];

$datos1 = $_GET[rdf]

$ruta= $path. $apellido . $nombre .".rdf";
$path1=fopen( $ruta, "a+"); //abrimos el archivo
fwrite($path1,$datos1."\n"); // escribimos lo que esta en rdf
fclose($path1);
?>
  #8 (permalink)  
Antiguo 19/01/2005, 10:49
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Si los quieres pasar todos por get mediante javascript tienes mal el código que monta la cadena, habría de ser así

<input value="Save" type="submit" onClick="parent.location='almacena.php?firstName=' +firstName.value+'&surname='+surname.value+'&rdf=' +rdf.value">


pero desde luego lo más simple es, como te comenté, omitir el uso de javascript y que el form se encargue de enviar los datos al modo "tradicional". Para enviar las variables del form por get no tienes más que asignarle el método get a la acción de tu form

<form method="get">
  #9 (permalink)  
Antiguo 19/01/2005, 10:59
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 15 años, 1 mes
Puntos: 2
A través del metodo GET(vía url) solo se pueden enviar un máximo de 256 caracteres, mira a ver si es de eso.

Un saludo.
  #10 (permalink)  
Antiguo 19/01/2005, 11:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A los arrays en PHP .. intenta usar comillas para llamar a tus indices .. y por supuesto estra claro que "method" se usó en el formulario .. si es un link (normal o vía javascript) (se asumiría GET).

$datos1 = $_GET['rdf']; // el problema es aqui que no me entrega el contenido

Pero .. deberías poner el "HTML" de tu formulario .. no sé por qué usas Javascript existiendo el "submit" en un formulario (o no usas formulario?)

Un saludo,
  #11 (permalink)  
Antiguo 20/01/2005, 03:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
Este es mi formulario.html

<html>
<link rel="stylesheet" type="text/css" href="CSS/style.css"/>
<body leftmargin=0 topmargin=0 scroll=yes>
<script language="javascript" type="text/javascript" src="JS/generator.js"></script>
<SCRIPT type="text/javascript">
function foaf_open() {
window.open("./php/updatefoaf.php?uri=" +URI_foaf.value,"Update");
}
function group_open() {
window.open("./php/updategroup.php?uri=" +URI_group.value,"Update");
}
</SCRIPT>

<div id="container">
<div id="shadowright"></div>
<div id="header" >
<div id="header_left">
<div style="padding-top:10px; padding-left:30px;font-size:25pt;color:#DDF"> PeC-Navigator</div>
<div style="top:45px;position:absolute; padding-left:50px;font-size:9pt;color:#AAf">Person and Competencies Navigator </div>
</div>
<div id="header_right"></div>
</div>

<form name="rdf1" method="POST">
<div id="page">
<div><h2>Foaf Generator</h2></div>
<div><h3>General</h3></div>
<div>Complete the Fields</div>
<div id="item">Title (Mr, Mrs, Dr, etc)<div style="left:350; position:absolute;"><input type="text" name="title"></div></div>
<div id="item">First Name<div style="left:350; position:absolute;"><input type="text" name="firstName" id="firstName"></div></div>
<div id="item">Last Name (Family/Given)<div style="left:350; position:absolute;"><input type="text" name="surname" id="surname"></div></div>
<div id="item">Nickname<div style="left:350; position:absolute;"><input type="text" name="nick"></div></div>
<div id="item">Your Email Address<div style="left:350; position:absolute;"><input type="text" name="email"></div></div>
<div id="item">Homepage<div style="left:350; position:absolute;"><input type="text" name="homepage"></div></div>
<div id="item">Your Picture<div style="left:350; position:absolute;"><input type="text" name="depiction"></div></div>
<div id="item">Phone Number<div style="left:350; position:absolute;"><input type="text" name="phone"></div></div>

<h3>Work</h3>
Information about the place you work.
<div id="item">Work Homepage<div style="left:350; position:absolute;"><input type="text" name="workplaceHomepage"></div></div>
<div id="item">Page describing what you do at work<div style="left:350; position:absolute;"><input type="text" name="workInfoHomepage"></div></div>
<a name="school"></a>
<h3>School</h3>
<div id="item">School Homepage<div style="left:350; position:absolute;"><input type="text" name="schoolHomepage"></div></div>

<div><h3>List of Competence</h3></div>

<form name="competence" onSubmit="return false;">
<table>
<tbody id="competencetable">
<script language="javascript">
createCompetenceFields();
</script>
</tbody>
</table>
<input value="Add Competence" type="button" onClick="addCompetenceFields()">
</form>

<div><h3>List of Group</h3></div>
<form name="group" onSubmit="return false;">
<table>
<tbody id="grouptable">
<script language="javascript">
createGroupFields();
</script>
</tbody>
</table>
<input value="Add Group" type="button" onClick="addGroupFields()">
</form>

<div><h3>Generate the RDF</h3></div>

<input value="Generate" type="submit" onClick="generate()">

<textarea name="rdf" rows="20" style="width:97%"></textarea>

<input value="SAVE" type="submit" onClick="parent.location='almacena1.php'">

</div>
</form>

</body>
</html>

Luego cuando entra a almacena2.php se encuentra el siguiente codigo:
<?php
include "parameters1.php"; // para encontrar la ruta de dodne se almacenara el
archivo con el nombre y apellido mas la extension
$apellido = $_GET[surname];
$nombre = $_GET[firstName];

$datos1 = $HTTP_POST_VARS['rdf'];

//print "primero".$surname ."\n";
//print "segundo".$firstName ."\n";
//print "AQUI ".$datos1;

$ruta= $path. $apellido . $nombre .".rdf";
$path1=fopen( $ruta, "a+"); //abrimos el archivo
fwrite($path1,$datos1."\n");
fclose($path1);
?>
  #12 (permalink)  
Antiguo 20/01/2005, 08:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
ninguna ayuda con el codigo que he puesto
  #13 (permalink)  
Antiguo 20/01/2005, 08:25
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Tu problema está en el html que contiene el formulario. Tienes varios formularios abiertos y anidados, y el campo del cual no te llega el valor lo tienes fuera del formulario
  #14 (permalink)  
Antiguo 20/01/2005, 09:01
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
que poder hacer, me puedes dar una mano en esto. lo que pasa es que esto ya ha estado hecho y estoy haciendo modificaciones.
  #15 (permalink)  
Antiguo 20/01/2005, 09:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Teóricamente cuántos formularios pretendes tener en esa misma página?
  #16 (permalink)  
Antiguo 20/01/2005, 09:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 85
Antigüedad: 13 años
Puntos: 0
hay un solo formulario en la pagina que se llena. Hay hay 2 partes en la cual hace unos pasos para generar. pero al final el boton generar, me genera un codigo en el textarea, que es lo que quiero pasar a un archivo en el cual se pone el nomre y apellido de la persona que esta llenado ese formulario.
Espero sus comentarios y me puedan ayudar cone ste formulario q me ya no se que hacer.
  #17 (permalink)  
Antiguo 20/01/2005, 12:15
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 16 años, 3 meses
Puntos: 380
Pues estás declarando uno

<form name="rdf1" method="POST">

...y sin haberlo cerrado abres otro

<form name="competence" onSubmit="return false;">

que cierras más abajo

</form>

...y vuelves a abrir otro

<form name="group" onSubmit="return false;">

que cierras unas líneas más abajo

</form>

...luego está el textarea que no te llega

<textarea name="rdf" rows="20" s></textarea>

y unaslíneas más abajo cierras de nuevo

</form>

En html la anidación de formularios no está permitida y el navegador se hace un lío con el código y no sabe qué enviar.

Puedes tener varios formularios en una página, pero no unos dentro de otros.

Verifica que los 3 campos que pretendes enviar estén todos dentro del mismo form

<form>
campo 1
campo 2
campo 3
submit
</form>
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 04:04.