PHP - Encerrar Value de <option> en variable PHP

 
Vista:
Imágen de perfil de Lucas
Val: 87
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Encerrar Value de <option> en variable PHP

Publicado por Lucas (46 intervenciones) el 15/05/2020 18:01:48
Hola, les cuento, lo que pretendo con este código es que una vez ya sea mandado vía POST un <option>, el valor asignado se quede como predeterminado en el <select>, para esto desarrolle este código (Que sí funciona):
*DEJO ÚNICAMENTE LAS PARTES MÁS IMPORTANTES DEL CÓDIGO, PORQUE ES MUY LARGO *
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
if(isset($_GET["producto"])){
  $producto=$_GET["producto"];
}else{
  $producto="";
}
 
function get_prod($valor, $producto){
  if(!strcmp($valor, $producto)){
    echo "selected='selected'";
  }
}
?>
 
           <select name="producto">
                <option <?php get_prod("90",$producto);?> value="90">90</option>
                <option <?php get_prod("90F",$producto);?> value="90F">90F</option>
                <option <?php get_prod("90R",$producto);?> value="90R">90R</option>
                <option <?php get_prod("750",$producto);?> value="750">750</option>
                <option <?php get_prod("1000",$producto);?> value="1000">1000</option>
                <option <?php get_prod("30x3",$producto);?> value="30x3">30x3</option>
                <option <?php get_prod("60x3",$producto);?> value="60x3">60x3</option>
                <option <?php get_prod("30x3s",$producto);?> value="30x3s">30x3s</option>
                <option <?php get_prod("60x3s",$producto);?> value="60x3s">60x3s</option>
                <option <?php get_prod("30x3ENV",$producto);?> value="30x3ENV">30x3ENV</option>
                <option <?php get_prod("60x3ENV",$producto);?> value="60x3ENV">60x3ENV</option>
                <option <?php get_prod("100HGT",$producto);?> value="100HGT">100HGT</option>
                <option <?php get_prod("200",$producto);?> value="200">200</option>
                <option <?php get_prod("200F",$producto);?> value="200F">200F</option>
                <option <?php get_prod("200R",$producto);?> value="200R">200R</option>
                <option <?php get_prod("Sobres",$producto);?> value="Sobres">Sobres</option>
            </select>


Desde la página que procesa el formulario me devuelve el valor $_GET["producto"].

El código funciona, pero la verdad lo veo bastante desprolijo, alguna recomendación para hacerlo un poco más "bonito"? Se me había ocurrido que los "Value" de los <option> se podían meter en alguna variable para que los parámetros de la función get_prod() sean siempre los mismos pero no se como, escucho propuestas! 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
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Encerrar Value de <option> en variable PHP

Publicado por Julio (830 intervenciones) el 15/05/2020 18:31:41
Hola.

Crea un array con los productos y luego lo recorres con un foreach:

1
2
3
4
5
6
7
<?php $values = ['90', '90F', '90R', '750']; ?>
 
<select name="producto">
	<?php foreach ($values as $value): ?>
		<option <?php get_prod($value, $producto); ?> value="<?php echo $value; ?>"><?php echo $value; ?></option>
	<?php endforeach; ?>
</select>

Cuando quieras añadir un nuevo producto, te vale con meterlo en el array.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Lucas
Val: 87
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Encerrar Value de <option> en variable PHP

Publicado por Lucas (46 intervenciones) el 15/05/2020 18:54:46
Mil gracias Julio!!
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