Ir para conteúdo

POWERED BY:

Arquivado

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

programador_master

o switch é a melhor opção nesse caso?

Recommended Posts

Tenho um select com todos os estados brasileiros e de acordo com o estado selecionado vai ser acrescentado na URL o valor ?estado=xestado_selecionado.

 

Estou usando o switch:

 

<?php
switch($estado){
   case: $estado ! Manaus;
       echo 'Manaus';
       break;

   case: $estado ! Piaui;
       echo 'Piauí';
       break;
}
?>

 

A minha duvida é se tem uma outra forma, quero dizer, uma forma mais simplificada de se recuperar o valor do select. O switch resolva porém o código vai ficar extenso. Alguém que entenda melhor tem uma opnião sobre isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prefira utilizar IF, ELSEIF, ELSE, você pode fazer o seguinte:

-> Crie um array com todos os estados desejados.

-> Quando você percorrer as linhas retornadas no banco, verifique se o valor retornado é igual ao do 'array'

-> Se o valor existir no array, você exibe 'X' estado.

-> Se não existir , você faz a condição desejada.

 

Algo mais ou menos nesse sentido:

<?php
      $Estados = Array( 'Minas Gerais' , 'São Paulo' , 'Mato Grosso' ); // ...
      while( $dados = mysql_fetch_array( $SQL ) ) {
             if( array_key_exists( $dados[ 'estado' ] , $Estados ) {
                    echo $dados[ 'estado' ] ;
             } else {
                    /**
                     * ...
                     */
             }
      }

 

Também não entendi o motivo disso, mas ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi a lógica que você quer seguir..

 

pq não joga o value="" de cada option, como sendo o q você quer receber exatamente ?

 

ai apenas um $_POST['name_do_select']; já retorna oq você quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi se você tem valor do select pra que fazer um switch? não é so escrever o valor do select?

 

estado=estado_selecionado

 

no php você vai ter a variavel $estado com o valor so escrever ela echo $estado;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que ninguém entendeu direito rsrsr

Na verdade o select vem do banco de dados:

 

   <form action="" method="post">
       <select name="estado">
       	<option value="0">Escolha um estado:</option>
           <?php
			$sql   = "SELECT * FROM tb_estados ORDER BY nome ASC";
			$query = mysql_query($sql) or die (mysql_error());

			while($list = mysql_fetch_assoc($query)){
				echo '<option value="'.$list['id'].'">'.$list['nome'].'</option>';
			}	

			if($estado_f != $estado_f || ''){
				 echo "?estado=uf";
				 }
		?>
       </select>
   </form>       

 

Comecei a fazer um if ali dentro que seria a minha dúvida. É por isso que não dar pra dar um echo nos option.

Alguma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso não, uso isso em outro formulário

Entendi.

 

mas aqui quero somente mosrtar o estado selecionado?

Então segue a solução do William Bruno, coloca o 'value' como o nome do estado, e recupera pelo GET, POST o valor.

 

Você acha que seria melhor escrever os estados dentro de um array?

Não sei, não sei o que você quer fazer exatamente, tem como explicar melhor ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comecei a fazer um if ali dentro que seria a minha dúvida.

e para que serve esse if() ?

 

qual a intenção dele ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei, não sei o que você quer fazer exatamente, tem como explicar melhor ?

Bom, eu quero que ao selecionar um estado no select a url me mostre o estado selecionado.

Por exemplo www.site.com.br?estado=mg

É bem isso ae.

 

Respondendo o Willian

 

e para que serve esse if() ?

 

qual a intenção dele ?

Pensei em fazer um teste na variável '$estado', se ela for vazia retorna o estado selecionado.

 

É bem isso ae,

 

deu pra entender? Posso estar pensando diferente se não ficou claro postem ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, faz assim:

  <form action="" method="post">
       <select name="estado" onchange="this.form.submit()">
               <option value="0">Escolha um estado:</option>
           <?php
                               $sql   = "SELECT * FROM tb_estados ORDER BY nome ASC";
                               $query = mysql_query($sql) or die (mysql_error());

                               while($list = mysql_fetch_assoc($query)){
                                       echo '<option value="'.$list['nome'].'">'.$list['nome'].'</option>';
                               }     
                       ?>
       </select>
   </form>  
   <?php
          $estado = isset( $_GET[ 'estado' ] ) ? $_GET[ 'estado' ] : 'uf';
          echo $estado;
   ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

$estado = isset( $_GET[ 'estado' ] ) ? $_GET[ 'estado' ] : 'uf';

echo $estado;

?>

 

O que esse código deveria retornar? Quer me confundir, escreve os comando PHP de forma direta :(, não entendi bem

Aqui retorna o valor uf.

Compartilhar este post


Link para o post
Compartilhar em outros sites

com todo respeito, se você não conseguiu entender o que os rapazes escreveram, não vai conseguir fazer, os caras fizeram tudo...

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.