Foros del Web » Programando para Internet » PHP »

select dentro de un if

Estas en el tema de select dentro de un if en el foro de PHP en Foros del Web. hola estoy programando una estructura if de un select pero nose como preguntar if ( al hacer click en el select ) echo ... else ...
  #1 (permalink)  
Antiguo 08/05/2012, 09:04
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
keypress de select

hola
estoy programando una estructura if de un select pero nose como preguntar
if (al hacer click en el select)
echo ...
else
echo ...
endif
  #2 (permalink)  
Antiguo 08/05/2012, 09:07
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: keypress de select

Cita:
Iniciado por donangelomix Ver Mensaje
hola
estoy programando una estructura if de un select pero nose como preguntar
if (al hacer click en el select)
echo ...
else
echo ...
endif
Hola, es el evento click o el onchange del select, pero esto es javascript...
Si quieres que un archivo PHP se ejecute tendrías que hacer algo con AJAX..

Código HTML:
Ver original
  1. <select name="combo" onclick="alert('Hola')" >

Código HTML:
Ver original
  1. <select name="combo2" onchange="alert('Hola de nuevo')" >
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #3 (permalink)  
Antiguo 08/05/2012, 09:31
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: keypress de select

ok pero queria hacer esto, corrigeme si me equivoco porf.

Código PHP:
Ver original
  1. if (al hacer click en este select){
  2.          <select name="cantones" id="cantones">
  3.                 <option value='-1'>-Seleccione-</option>
  4.          <?php>
  5.          ....
  6.          <?>
  7.          </select>
  8. }else{
  9.          <select name="cantones" id="cantones">
  10.                 <option value='-1'>-Seleccione-</option>
  11.         <?php>
  12.           ....
  13.         <?>
  14.         </select>
  15. }

mi duda es que nose como programar la parte en rojo if (al hacer click en este select).. ayuda porf.
  #4 (permalink)  
Antiguo 08/05/2012, 09:56
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: keypress de select

Hola,
mira como coloque en mi anterior post...

cuando uno hace click en un select se dispara un evento, ya sea el onclick o el onchange( se usa para saber cuando se escoge otra opción) depende como hallamos definido el select

es decir, mira este select
Código HTML:
Ver original
  1. <select name="combo" onchange="validar()">
  2. <option value="1">1</option>
  3. <option value="2">2</option>
Le definí un onchange al select entonces cuando alguien seleccione una opción del combo se llama a la función validar(), esa función validar tu la debes haber creado previamente...
pero ojo que todo esto es unicamente JavaScript... te dejo un ejemplo completo para que veas cuando un usuario selecciona una opción del select

Código HTML:
Ver original
  1. <script type="text/javascript">
  2. function validar(val){
  3.   switch (val){
  4.    case "1":
  5.      alert('selecciono la opcion 1');
  6.    break;
  7.    case "2":
  8.      alert('selecciono la opcion 2');
  9.    break;
  10.   }
  11. }
  12. <select name="combo" onchange="validar(this.value)">
  13. <option value="0">Seleccione una opción</option>
  14. <option value="1">1</option>
  15. <option value="2">2</option>
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #5 (permalink)  
Antiguo 09/05/2012, 10:44
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
select dentro de un if

tengo un problema con un select.
al cargar el formulario debe mostrar un item por defecto
y al poner el cursor/foco (al hacer click sobre el) debe mostrar otros item
para eso se me ocurre una estructura if asi:

<?php if (selectname.cantones.onfocus) {?>
<select name="cantones" id="cantones" onChange='this.form.submit()'>
....
</select>
<?php }else{ ?>
<select name="cantones" id="cantones" >
. ...
</select>
<?php } ?>
  #6 (permalink)  
Antiguo 09/05/2012, 11:01
Avatar de NetGratis_eu  
Fecha de Ingreso: mayo-2012
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: select dentro de un if

No es necesario. Puedes usar "selected" dentro del <option> deseado, para que se muestre marcado por defecto.

https://developer.mozilla.org/en/HTML/Element/option

Código HTML:
Ver original
  1. <select name="cantones" id="cantones" >
  2. <option>Opción 1</option>
  3. <option selected>Opción Por Defecto</option>
  4. <option>Opción 2</option>

Además, si te he entendido bien, estás mezclando código del servidor (PHP) con JavaScript, lo cual es imposible (onfocus es un evento de JavaScript).
  #7 (permalink)  
Antiguo 09/05/2012, 12:17
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: select dentro de un if

hola NetGratis_eu
e intentado con selected y no resulta
sucede que teno varios select dependientes y el selected funciona en el select padre peor no funciona en los select hijos/dependientes .

por eso presiso del Onchange que envia el name del select para luego preguntar por el en el segundo select y mostrar , y asi para el resto

ayuda porf.
  #8 (permalink)  
Antiguo 09/05/2012, 12:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: select dentro de un if

Ya haz preguntado muchas veces, en muchos post y tanto en js como en php el mismo problema. Mientras no expongas bien tu problema nadie te podrá ayudar.

De tantos post ya he visto que tienes selects dependientes, pero no indicas cómo generas la información de esos selects hijos y cómo los envías a pantalla, si es por ajax o simplemente por llamar nuevamente a la página.

Finalmente, si colocas el onChange='this.form.submit()' en el select harás que todo el formulario se envíe, lo cual no sé si será lo correcto, o si lo que pretendes con ello es cambiar el select hijo.
  #9 (permalink)  
Antiguo 09/05/2012, 13:57
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: select dentro de un if

el codigo es muy extenso por eso no lo pongo y podria desanimar a cualquiera
esta es la pagina de donde me guie para hacer los select::
http://www.formatoweb.com.ar/ajax/select_dependientes_3_niveles.php

selects.php:
Código PHP:
Ver original
  1. <?php
  2. function CargaProvincias()
  3. {
  4.     include("include/conn.inc.php");
  5.     $cc = "SELECT * FROM provincias ORDER BY opcion ASC";
  6.     $consulta=mysql_query($cc, $link);
  7.  
  8.     // Voy imprimiendo el primer select compuesto por los provincias
  9.     echo "<select name='provincias' id='provincias' onChange='cargaContenido(this.id)'>";
  10.     echo "<option value='-1'>-Seleccione-</option>";
  11.     while($registro=mysql_fetch_row($consulta))
  12.     {
  13.         echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
  14.     }
  15.     echo "</select>";
  16. }
  17. ?>

ABC.php
Código PHP:
Ver original
  1. include("selects.php");
  2. ...
  3. <tr>
  4.         <td>Provincia<span   class="campo_obligatorio">*</span></td>
  5.         <td><?php CargaProvincias(); ?></td>
  6. </tr>
  7. <tr>
  8.         <td>Cant&oacute;n<span class="campo_obligatorio">*</span></td>
  9.         <td>
  10.             <select name="cantones" id="cantones">
  11.                 <option value="-1">Selecciona opci&oacute;n...</option>
  12.             </select>
  13.         </td>
  14. </tr>
  15. <tr>
  16.             <td>Parroquia<span class="campo_obligatorio">*</span></td>
  17.         <td>
  18.             <select name="parroquias" id="parroquias">
  19.                 <option value="-1">Selecciona opci&oacute;n...</option>
  20.             </select>
  21.         </td>
  22.     </tr>

ahora a travez de una estructura IF quiero condicionar el comportamiento del select ,,
pero nose como programar el IF para cuando reciba el foco/cursor
Código PHP:
Ver original
  1. <tr>
  2.         <?php if(???????????) {?>
  3.                            <td>Provincia<span   class="campo_obligatorio">*</span></td>
  4.                     <td><?php CargaProvincias(); ?></td>
  5.                 <?php }else{ ?>
  6.                             <td>Provincia<span   class="campo_obligatorio">*</span></td>
  7.                              <td>
  8.                             <select name="cantones" id="cantones">
  9.                 <option value="-1">- Seleccione - </option>
  10.                 <?php
  11.                     $c="select * from cantones";
  12.                     $cc=mysql_query($c,$link);
  13.                     while($join=mysql_fetch_array($c)){
  14.                         if($db_user["id_c"] == $join["id"]){
  15.                             echo '<option value="'.$join["id"].'"         selected="selected">'.$join["opcion"].'</option>';
  16.                         }else{
  17.                             echo '<option value="'.$join["id"].'">'.$join["opcion"].'</option>';
  18.                         }  
  19.                     }
  20.                 ?>
  21.                  </select>
  22.                              </td>
  23. </tr>
  #10 (permalink)  
Antiguo 09/05/2012, 14:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: select dentro de un if

Acabo de colocar un ejemplo de selects dependientes, mira si te sirve
  #11 (permalink)  
Antiguo 09/05/2012, 15:00
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
if dentro de select

no muestra mensaje de error pero tampoco muestra nada , contiene registros

Código PHP:
Ver original
  1. <select name="cantones" id="cantones" >
  2.     <?php if (document.form_a.cantones.focus()) {?>        
  3.                 <option value="-1">Selecciona opci&oacute;n...</option>
  4.     <?php }else{ ?>
  5.                 <?php
  6.                     $c="select * from estados";
  7.                     $cc=mysql_query($c,$link);
  8.                     while($join=mysql_fetch_array($c)){
  9.                         if($db_user["id_c"] == $join["id"]){
  10.                             echo '<option value="'.$join["id"].'" selected="selected">'.$join["nombre"].'</option>';
  11.                         }else{
  12.                             echo '<option value="'.$join["id"].'">'.$join["nombre"].'</option>';
  13.                         }  
  14.                     }
  15.                 ?>
  16.     <?php } ?>
  17.             </select>
  #12 (permalink)  
Antiguo 09/05/2012, 15:16
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: if dentro de select

Has de utilizar el array, no la select.

Código PHP:

 
while($join=mysql_fetch_array($cc)){ 
Saludos.
  #13 (permalink)  
Antiguo 09/05/2012, 15:35
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: if dentro de select

podria ser mas exlicito porf.
  #14 (permalink)  
Antiguo 09/05/2012, 15:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: if dentro de select

En primer lugar estás mezclando dos lenguajes completamente diferentes: Javascript y PHP.

Eso no es posible desde que si quiera lo piensas, ¿si lo sabías verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 09/05/2012, 15:42
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: if dentro de select

en lugar de
Código PHP:

 
while($join=mysql_fetch_array($c)){ 
es

Código PHP:

 
while($join=mysql_fetch_array($cc)){ 
...y pateketrueke, se refiere a

Código PHP:
    <?php if (document.form_a.cantones.focus()) {?>
  #16 (permalink)  
Antiguo 09/05/2012, 15:50
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: select dentro de un if

.y pateketrueke, como deveria ser esta condicion para que funcione

<
Cita:
?php if (document.form_a.cantones.focus()) {?>
  #17 (permalink)  
Antiguo 09/05/2012, 16:53
Avatar de NetGratis_eu  
Fecha de Ingreso: mayo-2012
Mensajes: 19
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: select dentro de un if

No existe manera de acceder al DOM desde PHP... principalmente porque no hay DOM en PHP - no es un navegador.

Para ello tienes que utilizar JavaScript dentro del documento - no en el servidor.

Por ejemplo, podrías comprobar que se ha enviado la provincia:
Código PHP:
Ver original
  1. <?php if($_POST['provincias']){ ?>

Aunque tendrías que sanitizar / limpiar la entrada del <select> antes de continuar con MySQL.

Y, una manera mucho más sencilla y rápida de hacer esto es usar Ajax.
  #18 (permalink)  
Antiguo 10/05/2012, 10:34
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
condicional para select

al ejecutar no muestra mensaje error tampoco los item , ayuda porf.
Código PHP:
if (document.form_a.cantones.selectedIndex>0){
            echo 
"<select name=\"cantones\" style='width:100px' onChange=\"this.form.submit()\">\n"
            echo 
"<option value='-1'><-Seleccione un Item</option>\n";
 
            
$SQLconsulta_h0="SELECT * FROM cantones WHERE relacion='$provincias'";
            
$consulta_h0 mysql_query($SQLconsulta_h0,$link) or die(mysql_error());
 
            While   (
$registro_h0=mysql_fetch_assoc($consulta_h0)){
                if (
$provincias == $registro_h0['id']){
                    echo 
"<option value=\"".$registro_h0['id']."\" selected>".$registro_h0['opcion']."</option>\n";
                } else {
                    echo 
"<option value=\"".$registro_h0['id']."\">".$registro_h0['opcion']."</option>\n";
                }
            }
            echo 
"</select>\n\n";
}else{ 
            ECHO 
"<select name='cantones' id='cantones'>";
            ECHO 
"<option value='1'>- Seleccione - </option>";
            
                
$a="select * from cantones";
                
$aa=mysql_query($a,$link);
                while(
$db_curso=mysql_fetch_array($aa)){
                    if(
$db_user["id_ct"] == $db_curso["id"]){
                    echo 
'<option value="'.$db_curso["id"].'" selected="selected">'.$db_curso["opcion"].'</option>';
                        }else{
                    echo 
'<option value="'.$db_curso["id"].'">'.$db_curso["opcion"].'</option>';
                        }    
                }
            
            ECHO 
"</select>";

  #19 (permalink)  
Antiguo 10/05/2012, 10: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: condicional para select

¿Por qué estás mezclando dos lenguajes diferentes (js/php) como si fuera uno solo?

Deberías saber que eso no es posible en el mundo real, deberías estudiar antes de asumir efectos imposibles.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #20 (permalink)  
Antiguo 10/05/2012, 10:49
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 108
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: condicional para select

podrias ser mas explicito, o talves darme una idea de como seria
  #21 (permalink)  
Antiguo 10/05/2012, 10:59
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: condicional para select

Cita:
Iniciado por donangelomix Ver Mensaje
podrias ser mas explicito, o talves darme una idea de como seria
Lo que dice el amigo pateketrueke es que no deberias mezclar javascript y php tan arbitrariamente... Por ejemplo despues del if no pones la etiqueta de apertura de php <?php (aunque no se si ese if tendria alguna utilidad en el codigo php)... Aparte de eso, porque no imprimes todos los controles de formulario de forma "normal", es decir, sin el echo y cuando necesites agregarle algo de php abres con <?php y lo vuelves a cerrar con ?> cuando vayas a agregar algo en html y lo vuelves a abrir cuando necesites php y asi sucesivamente... Son solo sugerencias
  #22 (permalink)  
Antiguo 10/05/2012, 11:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: condicional para select

Cita:
Iniciado por donangelomix Ver Mensaje
podrias ser mas explicito, o talves darme una idea de como seria
Estás mezclando peras con manzanas, no puedes usar Javascript como si fuera código PHP. Deberías aprender las diferencias antes de comenzar si quiera a intentar lo que quieres.

A lo largo del tema (por cierto, que duplicaste ) ya te han dado sugerencias factibles, ahora te toca poner de tu parte y estudiar, ahí tienes con que trabajar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: condicional, formulario, keypress, mysql, registro, select, sql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:29.