Foros del Web » Programando para Internet » PHP »

PHP OO Duda sobre tag <form> enviar/recibir datos tipo "String"

Estas en el tema de Duda sobre tag <form> enviar/recibir datos tipo "String" en el foro de PHP en Foros del Web. Hola, que tal?, bueno les cuento tengo mi siguiente código html+php: <html> <head> <title>Lo que sea</title> </head> <body> <h1>Frutas<h1> <form name="f" action="fruta_datos.php" method="POST"> <?php //Lo ...
  #1 (permalink)  
Antiguo 20/07/2011, 14:12
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 9 meses
Puntos: 1
Pregunta Duda sobre tag <form> enviar/recibir datos tipo "String"

Hola, que tal?, bueno les cuento tengo mi siguiente código html+php:

<html>
<head>
<title>Lo que sea</title>
</head>
<body>

<h1>Frutas<h1>
<form name="f" action="fruta_datos.php" method="POST">
<?php
//Lo siguiente rellena un tag <Select> dependiendo de los datos insertadoes en la tabla de la BD
include("conect.php");
$link = conectarse();

$sql1=mysql_query("SELECT nom_fruta from frutas group by nom_fruta");
?>
<select name="nom_fruta">
<option value=NULL>- - - - -</option>

<?php
while($row = mysql_fetch_array($sql1)){
echo "<option value=".$row['nom_fruta'].">".$row['nom_fruta']."</option>\n";
}
?>
</select>

<?php
$sql2=mysql_query("SELECT color_fruta from frutas group by color_fruta");
?>

<select name="color_fruta">
<option value=NULL>- - - - -</option>

<?php
while($row = mysql_fetch_array($sql2)){
echo "<option value=".$row['color_fruta'].">".$row['color_fruta']."</option>\n";
}
?>
</select>

<?php
//lo siguiente me crea una instrucion SQL para enviar a fruta_datos.php
$nom_fruta=$_POST['nom_fruta'];
$color_fruta=$_POST['color_fruta'];

if ($nom_fruta!='NULL' AND $color_fruta!='NULL'){
$sql="Select peso_fruta FROM frutas where nom_fruta='$nom_fruta' and color_fruta='$color_fruta'";
}

elseif ($nom_fruta=='NULL' AND $color_fruta=='NULL'){
$sql="Select * FROM frutas";
}

?>
<input type="submit" name="enviar" value="Enviar">
</form>
</body>
</html>

este es el código que tengo para fruta_datos.php, la cual me inprimira el arreglo de datos generado dependiendo de la instruccion sql que reciba:

<?php
include("conect.php");
$link = conectarse();
$sql=$_POST['sql'];
$nom_fruta=$_POST['nom_fruta'];
//$sqlqr=mysql_query($sql);//¿como hago para ejecutar el query con la cadena de caracteres que recibo?
//$n=mysql_num_rows($sqlqr);

echo $n."<br>"; //hasta aquí no recibe nada
echo $sql."<br>";//tampoco aquí
//por logica ni siquiera contempla mi for jeje'
for($i=0; $i<$n; $i++){
$row=mysql_fetch_array($sqlqr);
$array_res[$i]=$row[0];
echo $array_res[$i]."<BR>";
}
?>

Entonces mi duda es como envio/recibo la variable $sql que esta dentro de los if (marcados en negrita) de mi código html-php a fruta_datos.php y luego como hago para que sea ejecutada.

Gracias por adelantado y espero haber sido explícito, y perdonen si es algo simple, pero por más vueltas no doy ;)
  #2 (permalink)  
Antiguo 20/07/2011, 14:26
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Duda sobre tag <form> enviar/recibir datos tipo "String"

La tienes que pasar a un input y al menos agregarle algun tipo de encriptacion como base64_encode() para despues recibirla y hacerle un base64_decode() al otro lado para interpretarlo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 21/07/2011, 03:47
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Duda sobre tag <form> enviar/recibir datos tipo "String"

Tienes un error de concepto, has mezclado los dos ficheros y no te ha salido muy bien.

Te intento explicar, pero te recomiendo que eches un ojo a algún manual (que hay mil) de tratamiento de formularios:
1. Tienes una página con un formulario con el siguiente tag:
<form name="f" action="fruta_datos.php" method="POST">
2. Rellenas el formulario, en este caso sólo tienes que marcar los dos select.
3. Cuando des en submit (enviar el form) los valores que tú has marcado en el formulario se pasan a la variable $_POST y se cambia de página, a la que tengas puesta en el action del form, en este caso "fruta_datos.php".
4. En el php de recepción del formulario tratas los datos recibidos y realizas las consultas que necesites.

A partir de lo que te he dicho, te darás cuenta que el trozo de código que te pongo a continuación:
Código PHP:
<?php
//lo siguiente me crea una instrucion SQL para enviar a fruta_datos.php
$nom_fruta=$_POST['nom_fruta'];
$color_fruta=$_POST['color_fruta'];

if (
$nom_fruta!='NULL' AND $color_fruta!='NULL'){
$sql="Select peso_fruta FROM frutas where nom_fruta='$nom_fruta' and color_fruta='$color_fruta'";
}

elseif (
$nom_fruta=='NULL' AND $color_fruta=='NULL'){
$sql="Select * FROM frutas";
}

?>
No va en la misma página del formulario, sino en fruta_datos.php. En la página del formulario ni siquiera tiene sentido usar $_POST, ya que nunca va a existir, es en la recepción en la que tiene sentido. Desde ahí, podrás acceder a las variables con $_POST y la consulta no la tienes que enviar de una página a otra, la montas ahí mismo y la ejecutas ahí mismo.

Espero que te quede claro, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #4 (permalink)  
Antiguo 21/07/2011, 09:18
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 9 meses
Puntos: 1
De acuerdo Respuesta: Duda sobre tag <form> enviar/recibir datos tipo "String"

Genial solucionado, gracias Marvin y gracias vgonga1986 por sus respuestas, creo si andaba perdido, y si me es necesario enviar las variables por método post a otra página (fruta_datos.php), lo que he hecho es pasar la parte de código siguiente:
Código PHP:
<?php
 $nom_fruta
=$_POST['nom_fruta'];
 
$color_fruta=$_POST['color_fruta'];
 
if (
$nom_fruta!='NULL' AND $color_fruta!='NULL'){ 
$sql="Select peso_fruta FROM frutas where nom_fruta='$nom_fruta' and color_fruta='$color_fruta'";
 }
 
elseif (
$nom_fruta=='NULL' AND $color_fruta=='NULL'){
$sql="Select * FROM frutas";
 }
 
?>
junto con lo que tengo en fruta_datos.php
y me ha funcionado

Gracias en verdad!!

Etiquetas: formulario
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 20:02.