Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Artes Ussler

Select com dois valores

Recommended Posts

Olá

Quando crio uma página de edição que inclui um menu select, faço dessa forma:

<option value="<?php echo $categoria->id; ?>" <?php if($categoria->id == $categoria_info) {echo 'selected="selected"';}; ?>><?php echo utf8_encode($categoria->nome); ?></option>

Funciona perfeitamente, mas agora surgiu a necessidade de incluir dois valores em value, separados por vírgula. Segue trecho:

<option value="<?php echo $categoria->id; ?>, <?php echo $categoria->codigo; ?>" ...

Nesse caso como ficaria o selected?

Obs.: Eu chamo esses valores através do explode:

$values = $_POST['categoria'];
$values = explode(', ', $values);
$value1 = $values[0];
$value2 = $values[1];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando a alternativa para a implementação é iniciada por uma gambiarra, é notória a deficiência de um bom design.

Diga-ma, qual o motivo disso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sabia que usar o select desta forma é gambiarra.

Tenho uma tabela de tecidos com campos de nome do tecido, valor1, e valor2.

Fiz uma rotina que executa um cálculo de desconto usando o valor1 ou o valor2 de acordo com uma escolha através de radiobutton. Funciona perfeitamente. Mas, se a estrutura do código foi feita da forma correta, não sei informar, apenas sei que funcionou.

O que preciso é que ao executar o cálculo, o tecido selecionado permaneça no menu select.

Vou ver se encontro uma outra forma de fazer isso.

Fico grato pela ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Detalhe melhor o seu problema, adicione um exemplo funcional, podemos sugerir uma solução mais adequada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica seria:

Uma tabela com 3 campos: tecido, desconto1 e desconto2.

No menu select inseri no value esses dois campos de desconto, separados por vírgula.

Inseri dois radiobuttons. De acordo com o radiobutton selecionado, o cálculo seria com o valor de desconto1 ou desconto2.

Abaixo inseri alguns trechos do código, para não ficar muito extenso. Sou leigo em PHP, mas foi assim que consegui fazer:

<span>CÁLCULO DE DESCONTO</span>
<select name="desconto">
...
<option value="<?php echo $tecido->desconto_branco; ?>, <?php echo $tecido->desconto_cores; ?>" <?php if(isset($_POST['desconto'])) {echo 'selected="selected"';}; ?>><?php echo utf8_encode($tecido->nome); ?></option>
...
</select>


...


<span>Opções de cor:</span>
<input name="radio_desconto" type="radio" value="1" <?php if(isset($_POST['radio_desconto']) && $_POST['radio_desconto'] == "1") {echo 'checked="checked"';}; ?>" />
              Branco
<input name="radio_desconto" type="radio" value="2" <?php if(isset($_POST['radio_desconto']) && $_POST['radio_desconto'] == "2") {echo 'checked="checked"';}; ?> />
              Cores


...


<?php
    if(isset($_POST['desconto']))
    {
        $values = $_POST['desconto'];
$values = explode(', ', $values);
$value1 = $values[0];
$value2 = $values[1];


if($_POST['radio_desconto'] == "1") {
$valorDesconto = $value1;
} else {$valorDesconto = $value2;} 


}
if(isset($_POST['calcular'])){
$total = $preco-(($valorDesconto/100)*$preco);
echo '<br /><span>Preço final: R$ '.number_format($total,2, ',', '.').'</span><br />'; 
}
?>


<input type="submit" value="Calcular" name="calcular" />

Como eu mencionei, não sei se está certo, deve ser uma "gambiarra", mas foi da forma que eu sei fazer e funcionou.

Estejam a vontade para opinar, corrigir, etc.

grato desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.