Foros del Web » Programando para Internet » PHP »

Capturar Texto de un select

Estas en el tema de Capturar Texto de un select en el foro de PHP en Foros del Web. Hola necesito mostrar el texto de un select y no el value. Ese texto lo debo enviar a una base de datos. La programacion que ...
  #1 (permalink)  
Antiguo 28/05/2011, 12:28
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Capturar Texto de un select

Hola necesito mostrar el texto de un select y no el value. Ese texto lo debo enviar a una base de datos. La programacion que hice me funciona pero me guarda el value en vez del texto. Que deberia modificar?

Aqui parte del codigo:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function slctr(texto,valor){
  3.     this.texto = texto
  4.     this.valor = valor
  5. }
  6.        
  7. var productosPlasticos=new Array()
  8.     productosPlasticos[0] = new slctr('- - Seleccionar - -')
  9.     productosPlasticos[1] = new slctr("Accesorios",'accesorios')
  10.     productosPlasticos[2] = new slctr("Asfáltelas para capa aisladora")
  11.        
  12.        
  13. //*******Nietos*******************
  14. var accesorios = new Array()
  15.     accesorios[0] = new slctr('')
  16.     accesorios[1] = new slctr("Acoples",null)
  17.     accesorios[2] = new slctr("Duchas",null)
  18.     accesorios[3] = new slctr("Espigas",null)
  19.    
  20. function slctryole(cual,donde){
  21.     if(cual.selectedIndex != 0){
  22.         donde.length=0
  23.         cual = eval(cual.value)
  24.         for(m=0;m<cual.length;m++){
  25.             var nuevaOpcion = new Option(cual[m].texto);
  26.             donde.options[m] = nuevaOpcion;
  27.             if(cual[m].valor != null){
  28.                 donde.options[m].value = cual[m].valor
  29.             }
  30.             else{
  31.                 donde.options[m].value = cual[m].texto
  32.             }
  33.         }
  34.     }
  35. }
  36. </script>

Aqui los selects

Código HTML:
Ver original
  1. <select name="menurubro" id="menurubro" class="select" onchange="slctryole(this,this.form.menucategoria)">  </select>
  2.  
  3. <select name="menucategoria" id="menucategoria" class="select"onchange="slctryole(this,this.form.menusubcategoria)">
  4.  <option>- - - - - -</option>
  5.  </select>
  6.  
  7.  <select name="menusubcategoria" id="menusubcategoria" class="select">
  8.  <option>- - - - - -</option>
  9.  </select>
  #2 (permalink)  
Antiguo 28/05/2011, 12:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Capturar Texto de un select

Un select permite manejar dos cosas, por un lado el valor y por otro el texto que ve el usuario ¿por qué? pues por que quizá el usuario vea una lista con
si quiero
no quiero
y tu en la base de datos prefieras guardar un 1 o un 0 según sea el caso.

Pero esto no te obliga a usar valores diferentes en el value y en el text, usando el sentido común con simplemente usar algo como esto:
accesorios[1] = new slctr("Acoples","Acoples")
en vez de
accesorios[1] = new slctr("Acoples",null)

debería funcionar.
  #3 (permalink)  
Antiguo 28/05/2011, 15:09
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Capturar Texto de un select

Gracias por responder ocp001a. He probado poner nombres iguales pero hay textos que se componen de dos palabras separadas por ejemplo "removedor liquido" y cuando quiero crear el arreglo ya no funcionaria con dos palabras. Unos de los problemas aparecen en "Productos Plásticos" y yo para que funcione el arreglo tuve que poner "productosPlasticos". Como haria para que muestre "Productos Plásticos".

Gracias
  #4 (permalink)  
Antiguo 28/05/2011, 15:15
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Capturar Texto de un select

Creo que te lias. En el texto de los option pon lo que creas oportuno, ya sea igual o no que el value, mientras, en el value pon el dato que necesitas recoger para la BD.

En un value puedes poner perfectamente "Productos Plásticos" con el espacio y recogerlo correctamente.

Creo que es más una cuestión de como lo has planteado...
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #5 (permalink)  
Antiguo 28/05/2011, 15:28
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Capturar Texto de un select

Fijate que en los selects tengo el value="productosPlasticos" y eso es lo que me guarda mal. Si le pongo Productos Plásticos no me funciona mas en el arreglo y no me muestra los valores de los demas combos, ya que lo que estoy haciendo es 3 combos dependientes.

Código HTML:
Ver original
  1. <select name="menurubro" id="menurubro" class="select" onchange="slctryole(this,this.form.menucategoria)">
  2.           <option>- - Seleccionar - -</option>
  3.           <option value="productosPlasticos">Productos Pl&aacute;sticos</option>
  4.           <option value="quimicos">Qu&iacute;micos</option>
  5.           <option value="telasPlasticas">Telas Pl&aacute;sticas y Tejidos</option>
  6.           </select>
  #6 (permalink)  
Antiguo 28/05/2011, 15:35
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Capturar Texto de un select

Entonces tienes algún error en tu código de php. Haz una trazada con los echos para ver que valores te recoge, y nos dices a ver si así vemos donde está el error.

Como podrás comprobar en este ejemplo poner las palabras separadas en el value no da ningún problema.

Código PHP:
<?php
if(isset($_POST['btn']))
    echo 
$_POST['menurubro'];
?>

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post">

    <select name="menurubro" >
        <option>- - Seleccionar - -</option>
        <option value="productos Plasticos">Productos Pl&aacute;sticos</option>
        <option value="quimicos">Qu&iacute;micos</option>
        <option value="telas Plasticas">Telas Pl&aacute;sticas y Tejidos</option>
    </select>
    
    <input type="submit" name="btn" value="enviar" />
              
</form>
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #7 (permalink)  
Antiguo 28/05/2011, 15:40
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Capturar Texto de un select

IEKK yo lo combino con un javascript que crea arreglos para poder mostrar todos los valores del combo. El porblema aparece cuando entra en la parte del <script>. El php funciona bien. Fijate que hay un onchange="slctryole(this,this.form.menucategoria)" que envia a la funcion.
  #8 (permalink)  
Antiguo 28/05/2011, 15:45
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Capturar Texto de un select

¿Y para que te sirve esa función? ¿No puedes hacer ese arreglo desde php?
Sólo pregunto, no sé que haces en ese script...
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #9 (permalink)  
Antiguo 28/05/2011, 15:51
 
Fecha de Ingreso: enero-2010
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Capturar Texto de un select

Te explico, tengo que hacer 3 selects dependiendes. El php llena el primero, la función llena los otros dos dependiendo de la opción elegida en el primero. Yo te puse un par de opciones como ejemplos, pero hay varias mas. Entonces el script toma el valor del value del select y arma un arreglo con todas las opciones de ese valor seleccionado en el primer combo. Lo mismo hace el tercero ya que esta relacionado con el primero.

Etiquetas: select
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 01:58.