Foros del Web » Programando para Internet » PHP »

refrescar pagina con tag <select>

Estas en el tema de refrescar pagina con tag <select> en el foro de PHP en Foros del Web. Hola a todos: estoy haciendo una página para que al usuario seleccionar un elemento del combo box, la página se refresque y muestre los datos ...
  #1 (permalink)  
Antiguo 19/08/2003, 10:45
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta refrescar pagina con tag <select>

Hola a todos:
estoy haciendo una página para que al usuario seleccionar un elemento del combo box, la página se refresque y muestre los datos de la funcion muestra() que esta añadida al tag <select>, la página es como esta:

principal.php
Código PHP:
<html><head><title>refrescar pagina con combo box </title></head><body>
<?php
  $cnx 
mysql_connect("localhost","user","");
  
$db mysql_select_db("bd");
  
$sql="select nombre from secciones order by nombre asc";
  
$consulta mysql_query($sql);
  
$n mysql_num_rows($consulta);
  echo 
"<form action='val.php' method='post'>
            <select name='lst_sec' onchange=muestra('$lst_sec')>"
;
  for (
$i 0$i $n$i++){
    
$r mysql_fetch_row($consulta);
    echo 
"<option>$r[0]</option>";
  }
  echo 
"</select>";
  
// hasta aqui no hay ningún problema...
  
function muestra($seccion){ //el codigo para el evento onchange
    
$sql "select codigo, fecha, num_articulos, ruta, creador
                from secciones
                where nombre = $seccion order by codigo asc"
;
    
$consulta mysql_query($sql);
    
$n mysql_num_rows($consulta);
    if (
$n == 0) echo "esta sección no tiene datos suficientes";
    else {
      echo 
"<table><tr>
                  <td>codigo</td>
                  <td>fecha de creacion</td>
                  <td>cantidad de articulos</td>
                  <td>ruta de origen</td>
                  <td>creador</td>
                </tr>"
;
      for (
$i 0$i $n$i++){
        
$r mysql_fetch_row($consulta);
        echo 
"<tr>
                    <td>$r[0]</td>
                    <td>$r[1]</td>
                    <td>$r[2]</td>
                    <td>$r[3]</td>
                    <td>$r[4]</td>
                    <td>¿ok?<input type='checkbox' name='chk'></td>
                  </tr>"
;
      }
      echo 
"<tr><td colspan='5'>
                <input type='submit' name='proc' value='Procesa'>
                <input type='reset' value='Limpiar'></td></tr>
                </table></form>"
;
  }
?>
</body>
</html>
De hecho, que este código esta errado... porfavor, podrían ayudarme pues en este tipo de aplicaciones usando combos, listas y que se tenga que refrescar la página soy nuevo... ojalá no me digan que necesariamente debo usar javascript... no se nada de este lenguaje ... ¿que es lo que me falta? ¿que debo hacer?

Agradecido de antemano

Paco
  #2 (permalink)  
Antiguo 19/08/2003, 15:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Lo siento, debes usar javascript. Todo lo que pongas en onchange, onload y demas eventos debe ser funciones javascript. No puedes llamar funciones PHP directamente. Deberias recargar la pagina. En las FAQs creo que tienes un ejemplo de como se hace. Y creo que hace poco se puso un ejemplo con solo javascript (menos la carga de los datos desde BD). Usa el buscador del foro, busca por 'combo' o por 'select'.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 19/08/2003, 16:02
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 7 meses
Puntos: 7
A ver pacoalonso, si haces simplemente

<select name='lst_sec' onChange=this.form.submit();>

entonces eso actuaria como si fuera un submit despues de haber elegido el valor en el <select> y lo podrias procesar mas facil, no?
__________________
No tengo firma ahora... :(
  #4 (permalink)  
Antiguo 19/08/2003, 16:37
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
Mickel, eso significa que mi funcion muestra() debe estar en otro script, y ademas pertencer a otro formulario??...

Muchas gracias a ambos por sus respuestas y Josemi... pues tendré que aprender el javascript... sera por mi bien no?

Gracias...
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #5 (permalink)  
Antiguo 19/08/2003, 17:03
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 7 meses
Puntos: 7
no, pacoalonso, lo que te sugeria es que en lugar de hacer una funcion, proceses los datos sobre el mismo script
__________________
No tengo firma ahora... :(
  #6 (permalink)  
Antiguo 19/08/2003, 17:34
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
ok Mickel ... lo voy a probar y te agradezco mucho por la ayuda que me brindas y lo rápido de tu respuesta...

Un gran abrazo

Paco :saludo:
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #7 (permalink)  
Antiguo 19/08/2003, 17:43
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
mira, puedes probar con esto que ya esta montado....

Código PHP:
<?php
$server        
="localhost";    // host
$user        ="root";            // usuario
$password   ="xxx";            // password
$database    ="xxx";        // nombre base de datos

$mysql    mysql_connect($server$user$password) or die(mysql_error());
          
mysql_select_db($database$mysql) or die(mysql_error());

$sql    "SELECT * FROM estados ";
$result mysql_query($sql$mysql) or die(mysql_error());    

$option "";
        while(
$rows mysql_fetch_object($result)){

                 
$option .="<option value=\"$rows->item_texto\">$rows->item_texto</option>\n";

        }
?>
<html>
<head>
<script type="text/javascript">
function showText(form){
    var option_value= form.dropdown.options[form.dropdown.selectedIndex].text
    var value_text    = option_value
    form.nick.value    = value_text
}
</script>

</head>
<body>
<form>
  <table width="60%" border="0" align="center">
    <tr>
      <td>Selecciona un nick:</td>
      <td><select name="dropdown" onChange="showText(this.form)">
          <?php echo $option;?>          
        </select></td>
    </tr>
    <tr>
      <td>Tu nick es: 
        </td>
      <td><input type="text"
name="nick" value=""></td>
    </tr>
  </table>
</form>
</body>
</html>
porcierto el codigo es de BIBLIO, un buen Amigo

Código PHP:
# MySQL-Front Dump 2.5
#
# Host: localhost   Database: pedo
# --------------------------------------------------------
# Server version 3.23.55-nt


#
# Table structure for table 'estados'
#

DROP TABLE IF EXISTS `estados`;
CREATE TABLE `estados` (
  `
idint(3) default '0',
  `
item_textovarchar(50NOT NULL default 'admin',
  
KEY `id` (`id`)
TYPE=MyISAM;



#
# Dumping data for table 'estados'
#

INSERT INTO `estados` (`id`, `item_texto`) VALUES("1""admin");
INSERT INTO `estados` (`id`, `item_texto`) VALUES("2""pedo");
INSERT INTO `estados` (`id`, `item_texto`) VALUES("3""mio");
INSERT INTO `estados` (`id`, `item_texto`) VALUES("4""xxxx"); 

venga, ya veras que este ejemplo es perfecto para lo que quieres, solo tendras que adaptarlo a tu script....jejeje no me des las gracias a mi... daselas a Biblio... lo hizo el.
__________________
3w.valenciadjs.com
3w.laislatv.com
  #8 (permalink)  
Antiguo 19/08/2003, 17:56
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
muchísimas gracias nuevo... voy a examinarlo y de hecho que es de suma utilidad...

gracias a todos

Un abrazote

Paco
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #9 (permalink)  
Antiguo 19/08/2003, 17:58
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
hombre...aun no lo he usado yo y ya lo he pegado aqui,....arf arf.. es una pasada... gracias Biblio
__________________
3w.valenciadjs.com
3w.laislatv.com
  #10 (permalink)  
Antiguo 19/08/2003, 18:06
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
claro... muchas gracias a Biblio... lo que pasa es que por la emoción no habia notado que el buen Biblio lo habia escrito... otra vez muchas gracias a todos y a Biblio tambien...

Paco
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #11 (permalink)  
Antiguo 20/08/2003, 11:52
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
hola otra vez... he ejecutado el codigo de Biblio que tuvo a bien pasarme "nuevo" y todo sale perfecto... ahora el problema que tengo es que deseo pasar la variable generada en javascript a una variable de php y no me sale... estuve leyendo algunos temas del foro en donde me explicaban como debía hacerlo pero nada, no me sale, aqui les envío las modificaciones básicas que le hice a la funcion y a mi codigo php...
Código PHP:
<?php
function pri(){
// el código de arriba...
  
return $option;
}
?>
<html>
<head>
<script type="text/javascript">
function showText(form){
  var option_value=form.dropdown.options[form.dropdown.selectedIndex].text
  var value_text    = option_value
  form.nick.value    = value_text
  window.location.href ="script.php?valor=" + value_text
}<!-- la ultima linea de la funcion es la que he agregado-->
</script>
</head>
<body>
<?php
function cambia(){
  
$opt pri();
  echo 
"<form action='script.php' method='post'>
            Selecciona un nick:
         <select name='dropdown' onChange='showText(this.form)'>
         <option>-- elije tu nick --</option>
          $opt  </select><br><br>
      Tu nick es: $valor //aqui no sale nada...
     </form>"
;
}
?>
</body>
</html>
bueno, para dato adicional y que quiza pueda influir en la no publicación del resultado es que la página script.php es llamada desde otra llamada "eleccion.php" la cual evalúa que opción se escogió de oootro script llamado "myform.php"... cuando llamo a "script.php" lo hago por medio de una funcion... algo parecido a esto son los codigos de las paginas...

1. myform.php
bla, bla, bla
<form action="eleccion.php" method="post">
<input type="radio" name="rad">opcion 1
<input type="radio" name="rad">opcion 2
<input type="radio" name="rad">opcion 3
<input type="radio" name="rad">opcion 4
<input type="submit" name="eval">Evalua
</form>

2. eleccion.php
<?php
include ("script.php");
switch($rad){
case 0;
cambia();
break;
// bla bla bla
}
?>

3. script.php... es el que esta al principio dentro de este mismo mensaje...

bueno amigos, agradecido de antemano por su segura coalboración me despido con un gran abrazo a todos y deseándoles éxitos en todo lo que se proóngan

Paco
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
  #12 (permalink)  
Antiguo 20/08/2003, 17:18
 
Fecha de Ingreso: agosto-2003
Ubicación: Piura
Mensajes: 238
Antigüedad: 14 años, 4 meses
Puntos: 0
chicos porfa, no se olviden de este temita del paso de una variable de javascrip a php que no me sale.... la duda ya se base en el mensaje que esta arriba de este....

Muchisisismas gracias de antemano y disculpen la molestis
Su amigo de siempre
Paco
__________________
Un hombre inteligente, caminando, llega mucho mas rápido que un torpe en coche
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 02:46.