Foros del Web » Programando para Internet » PHP »

Concatenar dos input en una sola cadena

Estas en el tema de Concatenar dos input en una sola cadena en el foro de PHP en Foros del Web. Hola a todos. Llevo calentandome la cabeza dias y no hay manera eso si mi nivel el basico, estoy intentado concatenar dos inputs en uno ...
  #1 (permalink)  
Antiguo 02/03/2011, 16:34
 
Fecha de Ingreso: noviembre-2010
Ubicación: Vila-real-Castellon-España
Mensajes: 18
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Concatenar dos input en una sola cadena

Hola a todos.

Llevo calentandome la cabeza dias y no hay manera eso si mi nivel el basico, estoy intentado concatenar dos inputs en uno para que busque en una base de dato. Me explico.

<input type="text" name="campo1" size="23">

<input type="text" name="campo2" size="23">

En un input campo1 ej. 103 en el input campo2 9021 , estoy intentado que lo concatene en "1039021" en un campo llamado final y que lo envie a otra pagina mediante un form.

<form action="piezasokalmacen1.php" method="post">

y que muestre el resultado.


Dejo el codigo que tengo, este no me da errores pero no encuentra nada.

Gracias por anticipado a todos los que me quieran ayudar.

<html>
<head>
<title>... </title>
</head>
<body>



<form action="piezasokalmacen1.php" method="post">
<div style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<p align="center">Ingrese la pieza a consultar stock:&nbsp;&nbsp;&nbsp;


<input type="text" name="campo1" size="23">

<input type="text" name="campo2" size="23">


<?php


$campo1=$_POST['campo1'];
$campo2=$_POST['campo2'];
$final = $campo1.$campo2;



?>


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

<br>
<br>
<input type="submit" value="buscar piezas">&nbsp;&nbsp;
</div>
</form>


Con un input "text" funciona de bien.
  #2 (permalink)  
Antiguo 02/03/2011, 19:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Concatenar dos input en una sola cadena

Ponle las comillas al value del input hidden, pero de todas maneras el inconveniente es que PHP se ejecuta en el servidor por lo que las variables siempre estaran vacias en el momento que haces eso. Lo que puedes hacer es usar Javascript para "mostrarselo" al usuario o simplemente hacer la concatenacion en tu archivo que procesa el formulario (o ambos)
  #3 (permalink)  
Antiguo 02/03/2011, 23:41
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: Concatenar dos input en una sola cadena

Pero ojo... si quieres enviar los valores que vayan a colocar en el form no podras hacerlo de esta manera... porque?... porque php se interpreta cuando se carga la pagina... por lo tanto si no hay nada en esos input, no se enviara nada aunque le pongan algo.

Porque no en la pagina donde recibes los datos los concatenas ?? O sea...

piezasokalmacen1.php
Código PHP:
$final $_POST['campo1'].$_POST['campo2']; 
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #4 (permalink)  
Antiguo 03/03/2011, 13:14
 
Fecha de Ingreso: noviembre-2010
Ubicación: Vila-real-Castellon-España
Mensajes: 18
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Concatenar dos input en una sola cadena

Gracias Ronruby y Marvin por aclararme que lo debo de poner en la otra pagina, ya comento que soy aprendiz, he modificado el codigo, funciona na da errores pero no me encuentra nada, seriais tan amables de ver que echo mal, que seguro que lo he echo y ayudar a esta pobre alma.

Formulario 50.php

<html>
<head>
<title>... </title>
</head>
<body>



<form action="piezasokalmacen1.php" method="post">
<div style="border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px">
<p align="center">Ingrese la pieza a consultar stock:&nbsp;&nbsp;&nbsp;


<input type="text" name="campo1" size="23">

<input type="text" name="campo2" size="23">




<br>
<br>
<input type="submit" value="buscar piezas">&nbsp;&nbsp;
</div>
</form>


piezasokalmacen1.php


<html>
<head>
<title>Consulta stock de piezas almacenes luis prades</title>
</head>
<body bgcolor="#48D1CC">

<?

$final = $_POST['campo1'].$_POST['campo2'];

?>

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


<?


# recogemos en una variable el nombre de BASE DE DATOS

$base="DB509256";

# recogemos en una variable el nombre de la TABLA

$tabla="piezasgluisprades2";


# establecemos la conexion con el servidor

$conexion=mysql_connect("rdbms.strato.de","U509256 ","18941032");

#asiganamos la conexión a una base de datos determinada

mysql_select_db($base,$conexion);


$resultado= mysql_query("SELECT final,descripcion,pvp,cantidad,ubicacion,almacen,a ctualizado FROM $tabla WHERE final='$_REQUEST[final]'",$conexion);



# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML)

?>
<html>
<body>
<table border="1" width="100%" id="table1">
<tr>
<td bgcolor="#FFFFFF">
<p align="center"><b><font face="Verdana">Luis Prades S.A. Pantalla
consulta del stock de nuestros almacenes</font></b></td>
</tr>
</table>
<h4> <font face="Verdana">"INFO-1" - Si el código es correcto y hay stock vera la cantidad y el
almacén. <a href="correorecambiosprades.htm">Pedir
piezas</a></font></h4>
<h4> <font face="Verdana">"INFO-2" - Si el código es correcto y no hay stock pagina sin datos.</font></h4>
<h4> &nbsp;</h4>
</body>
</html>

<?
echo "<table align border=2>";


echo"<tbody>";
echo "<tr>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Finis</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Descripcion</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>PVP</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Cantidad</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Ubicacion</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Almacen</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Actualizado</b></div></td>";
echo "</tr>";
echo " </tbody>";

# establecemos un bucle que recoge en un array
# cada una de las LINEAS DEL RESULTADO DE LA CONSULTA
# utilizamos en esta ocasión «mysql_fetch_row»
# en vez de «mysql_fetch_array» para EVITAR DUPLICADOS
# recuerda que esta ultima función devuelve un array escalar
# y otro asociativo con los resultados

while ($registro = mysql_fetch_row($resultado)){

# insertamos un salto de línea en la tabla HTML

echo "<tr>";

# establecemos el bucle de lectura del ARRAY
# con los resultados de cada LINEA
# y encerramos cada valor en etiquetas <td></td>
# para que aparezcan en celdas distintas de la tabla


foreach($registro as $clave){
echo "<td>",$clave,"</td>";
}
}
echo "</table>";


# cerramos la conexion

mysql_close();

?>

<br>
<h4>Reparto de Recambios a domicilio, consulte nuestros horarios de entrega.</h4>
<a href="http://recambiospradesxx.recambiiosford.es/buscarrecambios.htm"> Ir al menu ver mas stock de recambios.

</body>
</html>

Gracias por anticipado.
josepaspi
  #5 (permalink)  
Antiguo 03/03/2011, 18:08
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: Concatenar dos input en una sola cadena

Trata de poner tus codigos entre estas etiquetas:
[PHP]
//aca tu codigo
[/PHP]
Y por lo que veo tienes algunas fallas en la pagina que recibe el valor...
Te explico un poco para que tu mismo veas el error:
La pagina del formulario tiene 2 inputs que se enviaran a piezasokalmacen1.php por POST.
Por lo tanto en la pagina piezasokalmacen1.php debes obtener los dos datos y ponerlos en una nueva variable que las dejara concatenadas.
Una vez puestas en esta variable, puedes hacer la consulta sql.

Ojo que para obtener las variables y dejarlas en otra no necesitas armar nuevamente un formulario.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 05/03/2011, 10:37
 
Fecha de Ingreso: noviembre-2010
Ubicación: Vila-real-Castellon-España
Mensajes: 18
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Concatenar dos input en una sola cadena

Gracias Marvin por tus indicaciones.

Despues de releer tu mensaje varias veces lo entendi, auque estaba claro desde el principio debido a mii escaso nivel me costo, pero ha valido la pena pues he conseguido con tus indicaciones que funcione y esto me va evitar escribir el buscador en htm letra a letra y ahorro de horas de trabajo, por lo tanto el problema esta solucionado. dejo el codigo por si alguien esta interesado en verlo.

Codigo

<html>
<head>
<title>Consulta stock de piezas almacenes luis prades</title>
</head>
<body bgcolor="#48D1CC">



<?php

# recogemos concatenamos los campos del formulario y los dejamos en la variable $final

$campo1= $_POST["campo1"];
$campo2= $_POST["campo2"];
$final = $_POST['campo1'].$_POST['campo2'];
print "<p>$final</p>";


?>


<?php




# recogemos en una variable el nombre de BASE DE DATOS

$base="tu DB";

# recogemos en una variable el nombre de la TABLA

$tabla="tu tabla";


# establecemos la conexion con el servidor

$conexion=mysql_connect("rdbms.servidor.de","User, "pasword");

#asiganamos la conexión a una base de datos determinada

mysql_select_db($base,$conexion);


$resultado= mysql_query("SELECT final,descripcion,pvp,cantidad,ubicacion,almacen,a ctualizado FROM $tabla WHERE final='$final'",$conexion);



# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML)

?>
<html>
<body>
<table border="1" width="100%" id="table1">
<tr>
<td bgcolor="#FFFFFF">
<p align="center"><b><font face="Verdana">Luis Prades S.A. Pantalla
consulta del stock de nuestros almacenes</font></b></td>
</tr>
</table>
<h4> <font face="Verdana">"INFO-1" - Si el código es correcto y hay stock vera la cantidad y el
almacén. <a href="correorecambiosprades.htm">Pedir
piezas</a></font></h4>
<h4> <font face="Verdana">"INFO-2" - Si el código es correcto y no hay stock pagina sin datos.</font></h4>
<h4> &nbsp;</h4>
</body>
</html>

<?
echo "<table align border=2>";


echo"<tbody>";
echo "<tr>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Finis</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Descripcion</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>PVP</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Cantidad</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Ubicacion</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Almacen</b></div></td>";
echo "<td bgcolor='#FFD700'<div align='center'><b>Actualizado</b></div></td>";
echo "</tr>";
echo " </tbody>";

# establecemos un bucle que recoge en un array
# cada una de las LINEAS DEL RESULTADO DE LA CONSULTA
# utilizamos en esta ocasión «mysql_fetch_row»
# en vez de «mysql_fetch_array» para EVITAR DUPLICADOS
# recuerda que esta ultima función devuelve un array escalar
# y otro asociativo con los resultados

while ($registro = mysql_fetch_row($resultado)){

# insertamos un salto de línea en la tabla HTML

echo "<tr>";

# establecemos el bucle de lectura del ARRAY
# con los resultados de cada LINEA
# y encerramos cada valor en etiquetas <td></td>
# para que aparezcan en celdas distintas de la tabla


foreach($registro as $clave){
echo "<td>",$clave,"</td>";
}
}
echo "</table>";


# cerramos la conexion

mysql_close();

?>

<br>
<h4>Reparto de Recambios a domicilio, consulte nuestros horarios de entrega.</h4>
<a href="http://recambiosprades.recambiosford.es/buscarrecambios.htm"> Ir al menu ver mas stock de recambios.

</body>
</html>

Última edición por josepaspi; 05/03/2011 a las 18:08 Razón: Tema solucionado

Etiquetas: concatenar, dos, input, cadenas
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 21:41.