Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: viher en 19 Agosto 2010, 03:08 AM

Título: If en un formulario
Publicado por: viher en 19 Agosto 2010, 03:08 AM
hola,pues tengo el siguiente formulario:

<form id="form1" name="buscador" method="post" action="buscador.php">
  <label for="textfield"></label><br>
  <input type="text" name="palabra" id="textfield" />
  <input type="submit" name="button" id="button" value="Buscar" />
  <br><input name="radio" type="radio" id="radio" value="radio" checked="checked" />
  Películas
  <input type="radio" name="radio2" id="radio2" value="radio2" />
  <label for="radio2"></label>
  Revistas
  <label for="radio"></label>
  </form>


el caso es que queria ver si es posible con un if o algo hacer que si se pulsa la opción de "radio" la action del form vaya a buscador.php y si la opcion "radio2" es seleccionada la action del form vaya a otro archivo php como por ejemplo buscador.php

es esto posible y como se podria hacer?

gracias esque estoy empezando en php
Título: Re: If en un formulario
Publicado por: Dznp en 19 Agosto 2010, 03:18 AM
Si, se puede.
Bué, en realidad con lo que vos estas usando no podrías, ya que podes seleccionar 2 a la ves, podes usar un select
Código (html4strict) [Seleccionar]

<select name="nombre" size="1" >

<option value="radio">Revistas</option>

<option value="radio2" selected>Peliculas</option>




y un php más o menos así.
Código (php) [Seleccionar]
<?php
$var
=$_POST[nombre];
if(
$var=='radio'){
echo 
'acción 1';
} else {
echo 
'Acción 2';
}
?>





Espero que te sirva!
Título: Re: If en un formulario
Publicado por: viher en 19 Agosto 2010, 03:37 AM
asi lo personalicé,pero cuando el doy al boton del formulario para buscar me lleva al archivo "2.php" con las 2 opciones,aunque las cambie no me lleva a buscador.php

Código (php) [Seleccionar]
<form id="form1" name="buscador" method="post" action="<?php
$var
=$_POST[nombre];
if(
$var=='RadioGroup1'){
echo 
'buscador.php';
} else {
echo 
'2.php';
}
?>
">
 <label for="textfield"></label><br>
 <input type="text" name="palabra" id="textfield" />
 <input type="submit" name="button" id="button" value="Buscar" /><br>
   <label>
     <input name="RadioGroup1" type="radio" id="RadioGroup1_0" value="Películas" checked="checked" />
     Películas</label>
   <label>
     <input type="radio" name="RadioGroup1" value="Revistas" id="RadioGroup1_1" />
     Revistas</label>
 <label for="radio"></label>
 <label for="radio2"></label>
     </form>
Título: Re: If en un formulario
Publicado por: Dznp en 19 Agosto 2010, 03:48 AM
No no, eso esta mal!

El codigo que yo te di en php tendría que ir en buscador.php, ese archivo recibe las variables.
Título: Re: If en un formulario
Publicado por: Shell Root en 19 Agosto 2010, 03:59 AM
Así?
Código (html4strict) [Seleccionar]
<form action='index.php' method='post'>
   <input type="text" name="txtWord" />
   <input type="submit" name="btnSearch" value="Search..." /><br>
   <label>
      <input type="radio" value="Movie" id="rType" name="rType" checked="checked" />Movie
   </label>
   <label>
      <input type="radio" value="Magazines" id="rType" name="rType" />Magazines
   </label>
</form>


Código (php) [Seleccionar]
<?php
   $stxtWord 
$_POST['txtWord'];
   
$srType $_POST['rType'];
   if(
$srType == 'Movie'){
      echo 
'The name movie is: '.$stxtWord;
   }else{
      echo 
'The name magazine is: '.$stxtWord;
   }
?>
Título: Re: If en un formulario
Publicado por: viher en 19 Agosto 2010, 14:57 PM
formulario:

Código (php) [Seleccionar]
<form id="form1" name="buscador" method="post" action="buscador.php">
 <label for="textfield"></label><br>
 <input type="text" name="palabra" id="textfield" />
 <input type="submit" name="button" id="button" value="Buscar" /><br>
   <label>
     <input name="RadioGroup1" type="radio" id="RadioGroup1_0" value="Películas" checked="checked" />
     Películas</label>
   <label>
     <input type="radio" name="RadioGroup1" value="Revistas" id="RadioGroup1_1" />
     Revistas</label>
 <label for="radio"></label>
 <label for="radio2"></label>
     </form>


buscador.php

Código (php) [Seleccionar]
<?php 
 
$link 
= @mysql_connect("localhost""root""pass"); 
mysql_select_db("db"$link); 
 
// maximo por pagina 
$limit 25
 
// pagina pedida 
$pag = (int) $_GET["pag"]; 
if (
$pag 1

   
$pag 1

$offset = ($pag-1) * $limit
 
$var=$_POST[palabra];
if(
$var=='RadioGroup1'){
$sql "SELECT SQL_CALC_FOUND_ROWS img, nombre, id FROM peliculas WHERE nombre like '%$buscar%' order by id desc LIMIT $offset$limit"
} else {
$sql "SELECT SQL_CALC_FOUND_ROWS img, nombre, id FROM revistas WHERE nombre like '%$buscar%' order by id desc LIMIT $offset$limit"

$sqlTotal "SELECT FOUND_ROWS() as total"
 
$rs mysql_query($sql); 
$rsTotal mysql_query($sqlTotal); 
 
$rowTotal mysql_fetch_assoc($rsTotal); 
// Total de registros sin limit 
$total $rowTotal["total"]; 
?>


pues eso es lo que hice,lo que pasa es que seleccione la opción Revistas o Películas me saca la consulta de la tabla revistas.¿Porque?¿Qué estoy haciendo mal? Gracias
Título: Re: If en un formulario
Publicado por: cassiani en 19 Agosto 2010, 17:01 PM
Aquí:
$var=$_POST[palabra];

debe llevar comillas:
$var=$_POST['palabra'];
Título: Re: If en un formulario
Publicado por: viher en 19 Agosto 2010, 17:21 PM
sigue igual  :-\
Título: Re: If en un formulario
Publicado por: Shell Root en 19 Agosto 2010, 20:11 PM
Mirad lo siguiente:
Código (html4strict) [Seleccionar]
<form id="form1"
     name="buscador"
     method="post"
     action="buscador.php">

  <label for="textfield"></label>
  <br>
  <input type="text" name="palabra" id="textfield" />
  <input type="submit" name="button" id="button" value="Buscar" />
  <br>
  <label>
     <input name="RadioGroup1" type="radio" id="RadioGroup1_0" value="Películas" checked="checked" />Películas
  </label>
  <label>
     <input type="radio" name="RadioGroup1" value="Revistas" id="RadioGroup1_1" />Revistas
  </label>
  <label for="radio"></label>
  <label for="radio2"></label>
</form>


Código (php,15) [Seleccionar]
<?php
   $link 
= @mysql_connect("localhost""root""pass"); 
   
mysql_select_db("db"$link); 
 
   
$limit 25
   
$pag = (int) $_GET["pag"];
 
   if(
$pag 1){ 
      
$pag 1;
   } 
   
$offset = ($pag-1) * $limit
 
   
$var $_POST['palabra'];
 
   
$srType $_POST['RadioGroup1']; # Aquí el valor del radio seleccionado
 
   if(
$srType == 'pelicula'){
      
$sql "SELECT SQL_CALC_FOUND_ROWS img, nombre, id FROM peliculas WHERE nombre like '%".$buscar."%' order by id desc LIMIT ".$offset.", ".$limit;
   }else if(
$srType == 'revistas'){
      
$sql "SELECT SQL_CALC_FOUND_ROWS img, nombre, id FROM revistas WHERE nombre like '%".$buscar."%' order by id desc LIMIT ".$offset.", ".$limit;
   }else{
      
$sql "SELECT -1 As 'ERROR'";
   }
   
$sqlTotal "SELECT FOUND_ROWS() as total"
 
   
$rs mysql_query($sql); 
   
$rsTotal mysql_query($sqlTotal); 
 
   
$rowTotal mysql_fetch_assoc($rsTotal); 
   
$total $rowTotal["total"];
?>
Título: Re: If en un formulario
Publicado por: cassiani en 19 Agosto 2010, 20:16 PM
en efecto, capturabas el valor del text y no el de los radio butoms.
Título: Re: If en un formulario
Publicado por: viher en 19 Agosto 2010, 20:29 PM
gracias Shell Root eres un genio  ;-)