Foros del Web » Programando para Internet » PHP »

Mandar no sólo el Value sino también, el Text de un Option

Estas en el tema de Mandar no sólo el Value sino también, el Text de un Option en el foro de PHP en Foros del Web. Creo que es algo sencillo, espero que sepais orientarme. Tenemos por ejemplo el tipico desplegable de un form: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < ...
  #1 (permalink)  
Antiguo 29/05/2011, 16:06
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Mandar no sólo el Value sino también, el Text de un Option

Creo que es algo sencillo, espero que sepais orientarme.
Tenemos por ejemplo el tipico desplegable de un form:
Código HTML:
Ver original
  1. <select name="nombre" size="3" multiple>
  2.  
  3. <option value="valor 1">Texto de opción 1</option>
  4.  
  5. <option value="valor 2" selected>Texto de opción 2</option>
  6.  
  7. <option value="valor 3">Texto de opción 3</option>
  8.  
  9. <option value="valor 4">Texto de opción 4</option>
  10.  

Y por ejemplo elejida la "Texto de opción 4", no solo recibe el bendito php el "valor 4" si no tambien el propio "Texto de opción 4" ¿Es posible hacerlo?
Gracias majos
  #2 (permalink)  
Antiguo 29/05/2011, 16:28
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

si es posible.

Para recibir el valor del campo y el texto se utiliza javascript, para recibir solo el valor del campo se utiliza php.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 29/05/2011, 17:42
Avatar de camsworksinc  
Fecha de Ingreso: julio-2008
Ubicación: Queretaro
Mensajes: 261
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

Suponiendo lo siguiente:
Código HTML:
Ver original
  1. <select id='opciones'>
  2. <option value='1'>Opcion 1</option>
  3. <option value='2'>Opcion 2</option>
  4. <option value='3'>Opcion 3</option>


Para obtener tanto el valor como el texto, se usa JavaScript:

Código Javascript:
Ver original
  1. var campo_select = document.getElementById('opciones');
  2. var indice = campo_select.selectedIndex;
  3.  
  4. var texto = campo_select.options[indice].text;
  5. var valor = campo_select.value;
__________________
¡Malditas computadoras que siempre hacen lo que les DIGO que hagan, no lo que QUIERO que hagan!
  #4 (permalink)  
Antiguo 29/05/2011, 17:56
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

Asi es, y si quieres pasarlo a un PHP utilizas AJAX.

Código Javascript:
Ver original
  1. .
  2. .
  3. .
  4. .
  5.  
  6. var campo_select = document.getElementById('opciones');
  7. var indice = campo_select.selectedIndex;
  8.  
  9. var texto = campo_select.options[indice].text;
  10. var valor = campo_select.value;
  11.  
  12.     ajax.open("POST", "PHPyAJAX.php",true);
  13.     ajax.onreadystatechange=function() {
  14.         if (ajax.readyState==4) {
  15.             respuesta = ajax.responseText;
  16.         }
  17.     }
  18.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  19.     ajax.send("valor="+valor+"&texto="+texto);

Y el archivo PHPyAJAX.php
Código PHP:
Ver original
  1. $valor = $_POST['valor'];
  2. $texto = $_POST['texto'];
  3.  
  4. echo "El valor el select seleccionado es: ".$valor." y su texto es: ".$texto." <br> Gracias por utulizar Ajax con PHP :D ";

Lo que ves escrito en el echo será la respuesta que resivirá en AJAX, si quieres imprimir en pantalla esta respuesta hay que hacer algo como esto:

Código Javascript:
Ver original
  1. document.getelementbyid('dialogo').innerHTML = respuesta;


Un saludo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #5 (permalink)  
Antiguo 29/05/2011, 21:38
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

Don php, dice que no lee nada, y lo puse así:

Código HTML:
Ver original
  1. <form action="PHPyAJAX.php"  id="opciones" >
  2.     <select id='opciones'>
  3.     <option value='1'>Opcion 1</option>
  4.     <option value='2'>Opcion 2</option>
  5.     <option value='3'>Opcion 3</option>
  6.     </select>
  7. <input type="submit" value="Mandarselo a Php" />
  8.  
  9. <script language="Javascript">
  10.     .
  11.     .
  12.     .
  13.      
  14.     var campo_select = document.getElementById('opciones');
  15.     var indice = campo_select.selectedIndex;
  16.      
  17.     var texto = campo_select.options[indice].text;
  18.     var valor = campo_select.value;
  19.      
  20.         ajax.open("POST", "PHPyAJAX.php",true);
  21.         ajax.onreadystatechange=function() {
  22.             if (ajax.readyState==4) {
  23.                 respuesta = ajax.responseText;
  24.             }
  25.         }
  26.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  27.         ajax.send("valor="+valor+"&texto="+texto);
  28. </form>

¿¿Hay algo mal??
muchisimas gracias por el apoyo, y buen karma!
  #6 (permalink)  
Antiguo 29/05/2011, 22:11
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

Muchas gracias amigo.

Y si efectivamente. de esa manera no funciona yo lo escribí asi para poner un ejemplo pero

Te hace falta en ese codigo

1.- Crear el objetoAjax
2.- Crear la funcion en JavaScript
3.- Llamar a esta funcion con enventos como onclick(), onpressdown(), etc.., segun convenga. desde el campo de formulario.

Así es amigo. Aun un falta un caminito algo largo de seguir, pero mira.

Si lees éste árticulo http://www.cristalab.com/tutoriales/...ularios-c165l/ Estarás un paso adelante.

Con gusto te ayudo en cualquier duda que surja. Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #7 (permalink)  
Antiguo 30/05/2011, 01:30
 
Fecha de Ingreso: marzo-2011
Mensajes: 107
Antigüedad: 13 años, 1 mes
Puntos: 22
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

A mi se me ocurre algo mucho más sencillo, solo con PHP.

En el mismo value de los option escribes todo. Por ejemplo:

Código HTML:
<select name="nombre" size="3" multiple>

<option value="valor 1#Texto de opcion 1">Texto de opción 1</option>
<option value="valor 2#Texto de opcion 2" selected>Texto de opción 2</option>
<option value="valor 3#Texto de opcion 3">Texto de opción 3</option>
<option value="valor 4#Texto de opcion 4">Texto de opción 4</option>

</select> 
Primero esta el "valor 1" un "#" y "Texto de opcion 1". Cuando vayas a procesar este value haras lo siguiente:

Código PHP:
$datos $_POST['nombre'];

$partes explode('#'$datos); // separamos el value en 2 partes por el #

$valor $partes[0]; // la primera parte contiene el 'valor 2'

$texto $partes[1]; // la segunda el 'Texto de opcion 2' 
Es una forma de conseguir varios datos en el mismo value. Espero que te sirva ^^
  #8 (permalink)  
Antiguo 12/06/2011, 21:31
Avatar de Etherman  
Fecha de Ingreso: abril-2011
Mensajes: 93
Antigüedad: 13 años
Puntos: 2
Respuesta: Mandar no sólo el Value sino también, el Text de un Option

Gracias saneco, me fué muy útil tu idea. Ya que no sabía crear objetos en ajax.

Etiquetas: optiontext, optionvalue, selectform
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 08:52.