Foros del Web » Programando para Internet » PHP »

Unir dos variables de un formulario

Estas en el tema de Unir dos variables de un formulario en el foro de PHP en Foros del Web. Buenas a todos, quiero guardar unos datos en una base de datos con un formulario pero no se como unir dos variables del form. El ...
  #1 (permalink)  
Antiguo 06/08/2012, 10:41
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Pregunta Unir dos variables de un formulario

Buenas a todos,

quiero guardar unos datos en una base de datos con un formulario pero no se como unir dos variables del form. El problema es que quiero que sea multi-idioma.
En la base de datos tengo una tabla que se llama "idiomas" de esta forma:
----------------------------------------
| id_idioma | nombre_idioma | etiqueta_idioma |
----------------------------------------
|--- 1---- |----Español----|------es------|
----------------------------------------
|--- 2---- |----English ----|------en------|
----------------------------------------

Os pongo el codigo que tengo:
Código PHP:
<?php require_once('Connections/cnxGestor.php'); ?>
<?php
mysql_select_db
($database_cnxGestor$cnxGestor);
$query_rsIdiomas "SELECT * FROM idiomas";
$rsIdiomas mysql_query($query_rsIdiomas$cnxGestor) or die(mysql_error());
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas);
$totalRows_rsIdiomas mysql_num_rows($rsIdiomas);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
function crearForm($idioma) {
print <<<HERE
<label>Texto ($idioma): </label>
<input name="texto_$idioma" type="text" value="" /><br /><br />
HERE;
}
?>

<form action="" method="post">
  <?php do { 
  
crearForm($row_rsIdiomas['etiqueta_idioma']); 
  } while (
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas)); ?>
<input name="separador" type="hidden" value="#" />
<input name="enviar" type="submit" value="Enviar" />
</form>

</body>
</html>
<?php
mysql_free_result
($rsIdiomas);
?>
Dinamicamente me crea bien los "input" dependiendo de los idiomas de la base de datos. Lo que quiero es que las variables que se crean... "texto_$idioma" recogerla en la base de datos en un mismo campo separados por un "#"
Código PHP:
 $texto="$texto_es $separador $texto_en " 
manualmente puedo crear las variables pero si aumento el numero de idiomas en la base de datos ya no me vale porque tendria que volver a meter las variables de los idiomas nuevo manualmente es como crear una variable de otra variable dinamicamente no se.

Espero explicarme lo mejor que puedo pero lo veo muy complejo.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 06/08/2012, 20:14
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Unir dos variables de un formulario

¿Y por qué mejor no haces un input de tipo escondido (hidden) con el cuál mandes como parámetro el idioma?

ejemplo:

<input name="idioma" type="hidden" value="<?php echo $idioma; ?>" />

Y luego al recibirla haces lo que quieras con ella..
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #3 (permalink)  
Antiguo 06/08/2012, 20:18
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Unir dos variables de un formulario

me parece que lo que queres hacer es concatenar valores, y eso se hace con . ( PUNTO )

Código PHP:
Ver original
  1. $texto="$texto_es"."$separador"."$texto_en "
  #4 (permalink)  
Antiguo 07/08/2012, 03:15
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Pregunta Respuesta: Unir dos variables de un formulario

Gracias por responder!!!

xIamAlex entiendo lo que dices pero no se como me puede llevar a buen puerto. La variable del idioma ya lo recojo desde la base de datos..

rodrigo791 gracias por decirme eso, ya lo sabia. Pero el problema es como creo la variable $texto_es y $texto_en si no se cuanto idiomas va tener, ya que quiero que se haga dinamicamente...

el nombre de la variables se repite "texto_" tendria que ser algo como esto $texto_.$idioma para que me de $texto_es y texto_en y eso no existe o no me sale y luego unir esas dos variables en una variable para enviarlo a la base de datos

me entendeis ahora? siento si no me explique bien y mucha gracias por vuestro tiempo
  #5 (permalink)  
Antiguo 07/08/2012, 07:48
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Pregunta Respuesta: Unir dos variables de un formulario

He hecho unos cambios al codigo.
Código PHP:
do { 
   
$idioma $row_rsIdiomas['etiqueta_idioma'];
   
$idioma+
   
$texto "texto_".$idioma;
  
// el echo solo para ver que imprime  
   
echo $texto."<br />";
  
crearForm($idioma); 
  } while (
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas)); 
De esta forma la variable $texto me imprime "texto_es" y "texto_en" como puedo ahora crear una variable con esos nombre y recoger el valor del form e introducirlo en esas variables...

Estoy mas liao que la pata un romano. Un saludo!
  #6 (permalink)  
Antiguo 07/08/2012, 09:10
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Exclamación Respuesta: Unir dos variables de un formulario

ignoren lo de "idioma+" que se me olvido borrarlo
  #7 (permalink)  
Antiguo 08/08/2012, 04:48
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Pregunta Respuesta: Unir dos variables de un formulario

Buenas a todos de nuevo, he avanzado en el codigo y creo que me voy acercando. Os lo pongo de nuevo para que lo veais.

Código PHP:
<?php require_once('Connections/cnxGestor.php'); ?>
<?php
mysql_select_db
($database_cnxGestor$cnxGestor);
$query_rsIdiomas "SELECT * FROM idiomas";
$rsIdiomas mysql_query($query_rsIdiomas$cnxGestor) or die(mysql_error());
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas);
$totalRows_rsIdiomas mysql_num_rows($rsIdiomas);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
function crearForm($idioma) {
print <<<HERE
<label>Texto ($idioma): </label>
<input name="texto_$idioma" type="text" value="" /><br /><br />
HERE;
}
?>

<form action="" method="post">
  <?php 
  $separador 
filter_input(INPUT_POST,"separador");
  do { 
  
$idioma $row_rsIdiomas['etiqueta_idioma'];
  
$texto_[$idioma] = filter_input(INPUT_POST,"texto_".$idioma);
  
  
// el echo solo para ver que imprime  
  
echo $texto_[$idioma] ;

  
crearForm($idioma);
   
  } while (
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas));
  

   
?>
<input name="separador" type="hidden" value="#" />
<input name="enviar" type="submit" value="Enviar" />
</form>

  <?php 

 
echo $texto;
   
?>

</body>
</html>
<?php
Ahora consigo perfectamente recoger las 2 variables de los dos input con esta variable "$texto_[$idioma]". Bien

Lo que no consigo es unirla en una variable para enviarla a la base de datos... necesito una cosa asi:

Código PHP:
$texto$texto_[$idioma].$separador.$texto_[$idioma]; 
Pero me sale el mismo contenido en las variables "$texto_[$idioma]" y quiero recoger tantas variables haya en una sola.

A ver si alguien puede ayudarme que llevo varios dias y no doy con la solucion..GRACIAS!!
  #8 (permalink)  
Antiguo 08/08/2012, 14:28
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Exclamación Respuesta: Unir dos variables de un formulario

Nadie puede ayudarme? he estando pensando y creo que la forma de hacerlo es con bucles y array pero no se como...
  #9 (permalink)  
Antiguo 08/08/2012, 14:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Unir dos variables de un formulario

Si $texto_ es un array, y necesitas unirlo mediante $separador ¿por qué no usar join()?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 08/08/2012, 14:54
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Unir dos variables de un formulario

gracias por responder pateketrueke pero no entiendo bien lo que me dices puedes decirme un poco mas
  #11 (permalink)  
Antiguo 08/08/2012, 15:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Unir dos variables de un formulario

Pienso que el que debe explicar lo que busca eres tu.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 08/08/2012, 15:20
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Unir dos variables de un formulario

jajajajaja ok pateketrueke.... :)

quiero recoger el valor de las variables de un form y enviarlo a un campo de la base de dato. El problema es que creo varios input dependiendo de la cantidad de idiomas que tenga en la base de datos. y no puedo poner manualmente las variables sino dinamicamente...creo que mas arriba esto esta explicado.

¿como puedo unir lo que imprimo en las variable $texto_[$idioma] en una misma variable separado con un "separador" por idioma ?

y tu me has dicho algo de join...no se a que te refieres con eso....

Un saludo y gracias por seguir interesado en mi problema :)
  #13 (permalink)  
Antiguo 08/08/2012, 15:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Unir dos variables de un formulario

join()
http://php.net/join

Claro, si ya tienes valores en un array, supongo que sabes trabajar con arrays.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 08/08/2012, 15:29
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Pregunta Respuesta: Unir dos variables de un formulario

vale la info del join me suena a chino !!!!

y lo del array ...se que poniendo echo $texto_[$idioma] dentro del bucle me sale la lista completa pero no se como recoger esa informacion y añadir un separador entre variable y variable y unificarla en uno para llevarlo a la base de datos
  #15 (permalink)  
Antiguo 08/08/2012, 15:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Unir dos variables de un formulario

Creo que sigues sin entender, ¿la variable $texto_ es un array?

Entonces no necesitas iterar, sólo unir.
Código PHP:
echo join('@'$texto_); // @ como separador 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 08/08/2012, 15:37
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
Respuesta: Unir dos variables de un formulario

no ... porfavor mira el codigo

Código PHP:
<body>
<?php
function crearForm($idioma) {
print <<<HERE
<label>Texto ($idioma): </label>
<input name="texto_$idioma" type="text" value="" /><br /><br />
HERE;
}
?>

<form action="" method="post">
  <?php 
  $separador 
filter_input(INPUT_POST,"separador");
  do { 
  
$idioma $row_rsIdiomas['etiqueta_idioma'];
  
$texto_[$idioma] = filter_input(INPUT_POST,"texto_".$idioma);
  
  
// el echo solo para ver que imprime  
  
echo $texto_[$idioma] ;

  
crearForm($idioma);
   
  } while (
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas));
  

   
?>
<input name="separador" type="hidden" value="#" />
<input name="enviar" type="submit" value="Enviar" />
</form>

  <?php 

 
echo $texto;
   
?>

</body>
</html>
<?php
  #17 (permalink)  
Antiguo 08/08/2012, 15:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Unir dos variables de un formulario

¿No qué?

En el código se entiende perfectamente que vas creando un array de la variable $texto_

¿A que te refieres entonces?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 09/08/2012, 03:23
 
Fecha de Ingreso: julio-2009
Mensajes: 100
Antigüedad: 14 años, 9 meses
Puntos: 4
De acuerdo Respuesta: Unir dos variables de un formulario

pateketrueke gracias ya entendi lo que me decias... cuando te dije que "no" me referia que "no se" como recoger el valor del array.
He incluido lo del join() y funciona tal y como yo lo queria...es incleible lo que hace esa function join() me mire la info y no logro entender como lo hace lo veo dificil... a ver si consigo crear una function para hacer eso y aprender como se hace...
Un saludo y muchas gracias...dejo el codigo completo como me ha funcionado a mi...
Código PHP:
<?php require_once('Connections/cnxGestor.php'); ?>
<?php
mysql_select_db
($database_cnxGestor$cnxGestor);
$query_rsIdiomas "SELECT * FROM idiomas";
$rsIdiomas mysql_query($query_rsIdiomas$cnxGestor) or die(mysql_error());
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas);
$totalRows_rsIdiomas mysql_num_rows($rsIdiomas);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
function crearForm($idioma) {
print <<<HERE
<label>Texto ($idioma): </label>
<input name="texto_$idioma" type="text" value="" /><br /><br />
HERE;
}
?>

<form action="" method="post">
  <?php 
  $separador 
filter_input(INPUT_POST,"separador");
  do { 
  
$idioma $row_rsIdiomas['etiqueta_idioma'];
  
$texto_[$idioma] = filter_input(INPUT_POST,"texto_".$idioma);

  
// el echo solo para ver que imprime  
  
echo $texto_[$idioma] ;

  
crearForm($idioma);
   
  } while (
$row_rsIdiomas mysql_fetch_assoc($rsIdiomas));
  

   
?>
<input name="separador" type="hidden" value="#" />
<input name="enviar" type="submit" value="Enviar" />
</form>

  <?php 
 $texto 
join($separador$texto_);
 echo 
$texto;
   
?>

</body>
</html>
<?php
mysql_free_result
($rsIdiomas);
?>

Etiquetas: idiomas, variables, 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 17:12.