PHP - Pasar Combo por post y acceder al contenido seleccionado

 
Vista:
sin imagen de perfil

Pasar Combo por post y acceder al contenido seleccionado

Publicado por Alejandro (9 intervenciones) el 09/09/2014 13:01:30
Hola a todos,

Creo que debe ser muy fácil, pero son mis primeros pasos en PHP y...

Paso un form por POST y, en la página php, necesito acceder tanto al numero del elemento, como al contenido del elemento seleccionado en el combo.

El código relevante es este

El momento en el que paso el form

1
<form action="dd.php" method="post" class="margenizquierdaform" id="form1" name="form1">

Este sería el código de relleno o carga de la select o combo

1
2
3
4
5
6
7
8
9
10
11
12
<td>
<label for="cmbTipoPagina"></label>
 
      <select name="cmbTipoPagina[]" id="cmbTipoPagina"  class="combo">
        <option value="1">No lo s&eacute;</option>
        <option value="2" >1-5</option>
        <option value="3" >6-10</option>
        <option value="4" >11-15</option>
        <option value="5" >16-20</option>
        <option value="6" >21-30</option>
      </select>
</td>

Página dd.php

1
$cmbTipoPagina = $_POST["cmbTipoPagina"]; ???

Aqui, si selecciono el 3º necesitaría recoger:
3 -> El valor
"6-10" -> el contenido

Saludos y mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar Combo por post y acceder al contenido seleccionado

Publicado por Gonzalo (615 intervenciones) el 09/09/2014 15:32:23
no estoy seguro si [] es valido como nombre de objeto, yo te recomendaría mejor que los quitaras.

para evitar usar &eacute; define el header como content="text/html; charset=utf-8"

el único valor que se pasa ya sea al post o get es el value del objeto, si necesitas 2 o mas valores los debes poner en el value, a ver si este código te ayuda, solo separo el numero del elemento del contenido usando una coma o cualquier otro caracter de esta forma: value="1,No lo sé"

también puedes usar | o \ para separarlos, solo asegúrate de definirlo tambien en el split.

1
2
3
4
5
6
7
8
<select name="cmbTipoPagina[]" id="cmbTipoPagina" class="combo">
<option value="1,No lo sé">No lo sé</option>
<option value="2,1-5" >1-5</option>
<option value="3,6-10" >6-10</option>
<option value="4,11-15" >11-15</option>
<option value="5,16-20" >16-20</option>
<option value="6,21-30" >21-30</option>
</select>

y asi los separas en el POST al llamar a dd.php

1
2
3
4
5
6
7
8
9
10
11
12
$NumeroDelElemento="";// en este caso inicializo los valores primero
$Contenido="";
 
if(isset($_POST["cmbTipoPagina[]"]))
{
$Tmp=split(",",$_POST["cmbTipoPagina[]"]); // divido el value en 2 tomando la ',' como referencia para dividir la cadena
if(count($Tmp)==2)//verifico que efectivamente se haya dividido en 2
{
$NumeroDelElemento=$Tmp[0];//recupero los 2 valores
$Contenido=$Tmp[1];
}
}

aquí el problema seria si el contenido tiene una coma, eso dividiría la cadena en 3 o mas dependiendo de las comas, por ejemplo.

1
<option value="2,1,2,3,4 y 5" >1,2,3,4 y 5</option>

el split dividiría el value en un array de 5 elementos, si es que este caso seria usar mejor otro caracter para dividir el value, tal vez usar |.

1
<option value="2|1,2,3,4 y 5" >1,2,3,4 y 5</option>

y en el split igual.

1
split("|",$_POST["cmbTipoPagina[]"])

así quedaría como $NumeroDelElemento='1' y $Contenido='1,2,3,4 y 5'

espero sea de ayuda, suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Pasar Combo por post y acceder al contenido seleccionado

Publicado por Alejandro (9 intervenciones) el 09/09/2014 18:02:17
Muchas gracias Gonzalo!!,

Ya lo creo que me sirve de ayuda.....

Entonces la derecha es meter estos valores en una tabla catálogo de BBDD (mysql), llenar el combo con los valores y meter el código correspondiente a cada uno de ellos en "algún sitio"(oculto). (Mi experiencia es con c# y vb...)

Al pulsar el botón, recoger el value(código) correspondiente al elemento seleccionado, o incluso poder acceder a los elementos por si me hiciera falta

A ver si encuentro algo por ahí

Mil gracias Gonzalo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar