PHP - caja de texto condicional

 
Vista:
Imágen de perfil de Raúl

caja de texto condicional

Publicado por Raúl (5 intervenciones) el 29/10/2015 11:02:50
Hola a todos, necesito saber si hay alguna manera de introducir un valor en una caja de texto y dependiendo del valor introducido se acceda a una url A o una url B.

El valor estaría predefinido en la caja de texto y el usuario, dependiendo del valor que ponga, se mostraría una url diferente.

He probado con este código para que me muestre una caja de texto y un botón que al hacer clic deberá comprobar el código que se ha introducido en la caja de texto y dependiendo de qué código sea redireccionará a una url o a otra.

Este es el código que he utilizado :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<p>Inserte aquí el código proporcionado. Gracias</p>
<form action="" method="post">Clave : <input name="code" type="text" value="" />
<input name="submit" type="submit" value="Acceder" /></form>
<?php
$codcal = 3;
switch ($code) {
case codigoacceso1:
echo " Acceso a la web 1";
break;
case codigodeacceso2:
echo " Acceso a la web 2";
break;
default:
echo "No existe el código introducido";
}
?>

Pero no funciona

Espero vuestra genial ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

caja de texto condicional

Publicado por Lawliet (351 intervenciones) el 29/10/2015 18:04:25
Hola...

PHP no sería la solución a tu problema, ya que cuando presionas el botón la acción automática es dirigirse al archivo que indicaste en el action de tu form, dentro de este archivo ya podrías validar a que ruta dirigirse pero sería un paso extra a lo que planeas.

Lo correcto sería usar JavaScript o JQuery en tu caso, ya que de esta manera puedes usar un evento que se dispara al presionar el botón y así pueda validar el contenido de la caja de texto. Te proporciono un ejemplo sencillo, aunque en Internet encontrarás diferentes formas de hacerlo ^^.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
	<head>
		<title>Boton Condicional</title>
	</head>
	<script type="text/javascript">
		function enviar(){
			var texto = document.getElementById("txtBox").value;
			if (texto == "google"){
				window.location = "http://www.google.com/"
			} else if (texto == "facebook"){
				window.location = "http://www.facebook.com/"
			} else {
				window.location = "http://www.lawebdelprogramador.com/foros/PHP/1520519-caja-de-texto-condicional.html"
			}
		}
	</script>
	<body>
		<input type="text" id="txtBox" name="txtBox"/>
		<button onclick="enviar()">Enviar</button>
	</body>
</html>

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!

NOTA: JQuery, viene siendo una librería de JavaScript. (https://es.wikipedia.org/wiki/JQuery)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Raúl

caja de texto condicional

Publicado por Raúl (5 intervenciones) el 30/10/2015 09:42:24
Hola Lawliet, gracias por contestar y perder un poco de tu tiempo en ayudarme. He probado el código que me muestras y cuando pongo en la caja de texto la palabra "google" y le doy al botón enviar, dicha acción no lleva a la url de google.com, simplemente no hace nada, como si la acción de ir a la url no funcionara.

Te agradecería tu ayuda para resolverlo.

Muchísimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

caja de texto condicional

Publicado por xve (6935 intervenciones) el 30/10/2015 11:05:55
Hola Raúl, yo he probado el código de Lawliet y me funciona perfectamente!!!

Lo único que tienes que tener en cuenta, que no funciona con la tecla "Enter", tienes que utilizar el ratón para darle al botón enviar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Raúl

caja de texto condicional

Publicado por Raúl (5 intervenciones) el 30/10/2015 11:06:09
Perdona Lawliet, ya lo he solucionado, tenía desactivado el JS del navegador :(

Gracias por tu genial aporte, me ayudaste muchísimo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Raúl

caja de texto condicional

Publicado por Raúl (5 intervenciones) el 09/11/2015 10:53:12
Hola Lawliet, tu ayuda me ha solucionado lo que planteaba pero al incluir este código, éste está visible por firebug por lo tanto pueden ver el código de acceso a cada apartado.

He leído de vincular con un archivo externo .js pero no me funciona. Esto es lo que he realizado hasta ahora :

Primero, en la entrada he incluido este código :

1
2
3
<head>
  <script type="text/javascript" src="/js/codcal.js"></script>
</head>


Segundo, he creado un archivo dentro del directorio JS con nombre codcal.js incluyendo el siguiente código :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
	<script type="text/javascript">
		function enviar(){
			var texto = document.getElementById("txtBox").value;
			if (texto == "codigo1"){
				window.location = "https://enlace-web-del-codigo-1.html"
			} else if (texto == "codigo2"){
				window.location = "https://enlace-web-del-codigo-2.html"
			} else {
				window.location = "http://enlace-web-del-codigo-error.html"
			}
		}
	</script>
	<body>
		<input type="text" id="txtBox" name="txtBox"/>
		<button onclick="enviar()">Acceder</button>
	</body>
</html>


Pensaba que el código que he introducido en la primera parte llamaría al de la segunda y se ejecutaría correctamente, pero no ha sido así.

Gracias por vuestra paciencia y espero vuestra ayuda de nuevo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 478
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

caja de texto condicional

Publicado por Lawliet (351 intervenciones) el 09/11/2015 18:25:23
Hola...

Es totalmente correcto que quieras incluir un archivo externo para incluir la funcionalidad de JavaScript, de hecho eso es la buena práctica hoy en día ya que te permite reducir código y tener una mejor organización en tu proyecto. Sin embargo, déjame decirte que tienes un error algo grave, recuerda que el archivo que acabas de crear tiene extensión .js por lo que únicamente necesitas colocar el script correspondiente, es totalmente incorrecto que mezcles código de JavaScript con código HTML. Teniendo en claro esto a continuación te proporciono para que observes como quedaría el código con lo explicado anteriormente.

main.js
1
2
3
4
5
6
7
8
9
10
function enviar(){
	var texto = document.getElementById("txtBox").value;
	if (texto == "google"){
		window.location = "http://www.google.com/"
	} else if (texto == "facebook"){
		window.location = "http://www.facebook.com/"
	} else {
		window.location = "http://www.lawebdelprogramador.com/foros/PHP/1520519-caja-de-texto-condicional.html"
	}
}

index.php
1
2
3
4
5
6
7
8
9
10
<html>
	<head>
		<title>Boton Condicional</title>
	</head>
	<script type="text/javascript" src="./js/main.js"></script>
	<body>
		<input type="text" id="txtBox" name="txtBox"/>
		<button onclick="enviar()">Enviar</button>
	</body>
</html>

Si tienes la siguiente estructura en tu proyecto, el código proporcionado puede ayudarte sin problemas, te pido seas tan amable de colocar el árbol para ver las ramas (Carpetas) en que lo tienes organizado.

Captura

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Raúl

caja de texto condicional

Publicado por Raúl (5 intervenciones) el 10/11/2015 10:17:09
¡Perfecto! ya lo he solucionado, he quitado las etiquetas que hacen referencia al html y ha funcionado correctamente.

Te agradezco muchísimo tu ayuda.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose Luis León López

caja de texto condicional

Publicado por Jose Luis León López (12 intervenciones) el 04/11/2015 05:22:13
eso no te puede funcionar porque el tema esta que estas mesclando codigo PHP con html uno se ejecuta en el navegador html el otro en el servidor. para eso que quieres hacer tienes 2 opciones o usas javascript o envias los datos por post en un hidden y los trabajas en otra pagina ahi no estas enviando el formulario a ningun lado pues en action esta vacio por java script es mucho mas facil te pongo un ejempo

si lo quieres hacer con php debes enviar el dato del textbox al servidor y renviarlo de nuevo a tu pagina se esta forma

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<p>Inserte aquí el código proporcionado. Gracias</p>
 
//fijate que le estas diciendo en la etiqueta acction que los datos del formulario iran al servidor y regresaran a tu misma pagina 
 
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">Clave : <input name="code" type="text" value="" />
<input name="submit" type="submit" value="Acceder" />
 
</form>
 
//Ahora capturas ese dato y lo comparas 
 
if(isset($_POST["code"]))// si vino ese valor por post
{
     $codigoacceso=$_POST["code"];  //ahora si tenenes en la variable $codigoacceso el valor que entraron en el texbox
      if( $codigoacceso==1)
      echo " Acceso a la web 1";
     if( $codigoacceso==2)
      echo " Acceso a la web 2";
     if( $codigoacceso==1)
      echo " Acceso a la web 3";
     esle
     echo "No existe el código introducido ";
 
}

aunque es mas facil en javascript si quieres te digo como saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar