CategoryPHP

Mostrar option de select escolhido pelo usuário – php & mysql

Boas!

Galera tem perguntando muito sobre isso no fórum.imasters.
Resolvi deixar aqui no meu blog, um pequeno script que faz essa rotina.

Deixar selected, um dos options de uma tag select, apartir do que o usuário escolheu antes, e já temos salvo no nosso banco de dados.

Primeiro declaro uma função, para evitar duplicação de código.

<?php
function selected( $value, $selected ){
    return $value==$selected ? ' selected="selected"' : '';
}

E então uso ela em cada um dos meus options:

<select name="te">
    <option value="">Escolha</option>
    <option value="masculino"<?php echo selected( 'masculino', $sexo ); ?>>Masculino</option>
    <option value="feminino"<?php echo selected( 'feminino', $sexo ); ?>>Feminino</option>
</select>

É isso galera.
Com essa simples rotina, conseguimos deixar marcado (selected=”selected”), a opção que o usuário tinha escolhido anteriormente.

Lembrando que a variavel $sexo, pode vir do mysql, ou de um $_POST de um passo anterior desse formulário.. enfim… tanto faz.

Ponto no nome da variável da querystring – O php não aceita

Precisei usar parâmetros na querystring, com ponto no nome deles:

?login.sys=wbruno

Só que o ponto no php é uma estrutura da linguagem. Variaveis com ponto no nome não são válidas.
Isso me impossibilitou de receber o GET, da forma convencional:

echo $_GET['login.sys'];//

Com um var_dump(), percebi que neste caso, o php faz a troca automaticamente, do ponto por um underline:

echo $_GET['login_sys'];//wbruno

Rascunhei rapidamente o seguinte script para “desfazer” essa troca do php, e então usar no restante do projeto, o array $_GET, exatamente como está lá na URL.

<?php
        //var_dump( $_GET, $_GET['login.sys'], $_GET['login_sys'] );//array(1) { ["login_sys"]=> string(6) "wbruno" } NULL string(6) "wbruno" 


        var_dump( $_GET['login.sys'] );//NULL 


        $newGet = Array();
        foreach( $_GET AS $key=>$value )
        {
                $newGet[ str_replace( '_', '.', $key ) ] = $value;
        }


        $_GET = $newGet;

        echo '<hr />';
        var_dump( $_GET['login.sys'] );//string(6) "wbruno" 

E ai ? você já passou por isso ?
Como resolveu ?

@João Batista Neto, resolveu com htaccess:
https://www.facebook.com/neto.joaobatista/posts/470926322933918

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*)\.(.*)\=(.*)$
RewriteRule .* index.php?%1[%2]=%3 [QSA]

Isso vai fazer:

Então: index.php?user.name=Teste
Virar: index.php?user[name]=Teste

E no PHP, acessamos:

<?php
echo $_GET['user']['name'];

Exemplo prático de Orientação a Objetos (php), diferenças e vantagens em relação à um código Estruturado

#SouDev, focado em #FrontEnd “atualmente”.
Já trabalhei com backend também, desde a modelagem das Entidades, até as interfaces e controllers com ajax.

Uma das minhas maiores dificuldades enquanto estava estudando sobre Orientação a Objetos, era entender de fato o que é um objeto.
E o que a palavra orientação tem a ver com eles. Afinal, o que é Orientação a Objetos?
Continue reading

Marcar checkbox usando PHP, com dados enviados via POST

Para deixar registrado por aqui.

Colocando o atributo checked=”checked” em uma lista de checkboxs, dependendo do que foi marcado e enviado via POST.
Para usar algum outro array, como um vindo do banco, basta trocar o getPost(‘arr’), pelo teu array.

<?php

$_POST['var'][0] = 'r';
$_POST['var'][1] = 'tx';


function getPost( $key ){
	return isset( $_POST[ $key ] ) ? $_POST[ $key ] : null;
}
function is_checked( $value, $arr ){
	if( in_array( $value, $arr ) ) echo 'checked="checked"';
}
?>
<input type="checkbox" value="r" name="var[]" <?php is_checked( 'r', getPost('var') ); ?>/>Precipitação<br/>
<input type="checkbox" value="tn" name="var[]" <?php is_checked( 'tn', getPost('var') ); ?>/> Temperatura Mínima<br/>
<input type="checkbox" value="tx" name="var[]" <?php is_checked( 'tx', getPost('var') ); ?>/> Temperatura Máxima

Script php para gerar hierarquia de classes dependendo da URL atual

Fiz um post semana passada, sobre como podemos melhor aproveitar o elemento body dos nossos sites:

http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/

E nele eu cito, que o “trabalho” do server-side, seria gerar essas classes no body, ou então nós mesmos fazer isso “na mão”, página por página.

Sou preguiçoso então…
Continue reading