1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Caixas select em PHP

Discussão em 'Programação' iniciada por Crisis, 14 de Setembro de 2005. (Respostas: 4; Visualizações: 3659)

  1. Crisis

    Crisis Power Member

    Boa tarde, gostaria que me dessem a vossa opinião num empasse a que cheguei se for possivel, passo a explicar.

    A ideia é ter um pedaço de codigo que me apaga um utilizador de uma base de dados mysql, o codigo esta estruturado da seguinte maneira e com o seguinte interface:

    Uma caixa drop-box (select) com um botão OK a dta.
    Depois de carregar no botão OK em baixo aparece uma frase de confirmação de eliminação de utilizador com 2 botões SIM e NÃO.

    pseudo-codigo:
    <?php
    ligação a base de dados
    ler base de dados para drop box
    desenhar botão OK
    if request ok desenha frase de confirmação e botões SIM e NÃO
    if SIM faz outra ligação a base de dados e apaga o utilizador
    ?>

    O problema é o seguinte. escolho o utilizador e carrego em OK, aparece-me em baixo a confirmação de eliminação do utilizador escolhido e a drop box selecciona o 1º utilizador automaticamente, parece q faz refresh e volta para o 1 utilizador da lista e quando carrego em SIM é apagado o primeiro utilizador da lista sempre, a questão é, como fazer que a drop box mantenha o valor seleccionado inicialmente depois de carregar no OK.

    Não sou grande programador de php mas vou-me safando.

    cumprimentos e obrigado
    Rafael Silva
     
  2. Marsupillami

    Marsupillami Power Member

    Deves ter um ciclo while que te faz os <option></option>, não tens? Basta comparares dentro do ciclo, o valor com o $_POST['valor']. Se for igual, acrescentas o selected à tag <option>, senão fica sem nada. Ex:

    PHP:
    while($linha mysql_fetch_array($qid)) {

        
    $var '';

        if(
    $linha['nome'] == $_POST['nome'])
            
    $var 'selected';
          
        echo 
    '<option value="...." name="...." ' $var '>lalalala</option>';

    }
    Não sei se tá suficientemente explícito nem se está totalmente correcto (deve ter uns errozitos pequenos por aí) pois foi feito mesmo agora à pressa. De qq das formas tens aí a essência.

    EDIT: Também tens como alternativa guardar o $_POST numa variavel temporaria que depois usas na confirmação, mas é melhor o método de cima.
     
    Última edição: 15 de Setembro de 2005
  3. dr_tuborg

    dr_tuborg Power Member



    Deves utilizar uma variável temporária para a confirmação!
    Senão olha aqui:
    Escolhes o utilizador 2 da drop-down para apagar. Aparece-te a cena para confirmar e o utilizador que está escolhido é o segundo...até aqui tudo bem...
    so que depois, e antes de confirmares, escolhes o terceiro utilizador....
    adivinha qual vai ser o utilizador que vais apagar? adivinha lá.... pois....é claro...o terceiro...
    tens de ter no HTML um input hidden:
    <input type="hidden" name=id_utiizador_escolhido value=[id_utilizador_na_base_de_dados]>
    e quando fazes confirmar apagas o utilizador com o id que é passado nesta variável e não o que vem da drop-down!


    compreendido?
     
  4. Nazgulled

    Nazgulled Power Member

    tens varias hipoteses... fazes o que o Marsupillami disse, mas aconselho-te depois a desactivares esse campo select pk n tem logica aparecer a pergunta sim/não e permiter mudar de utilizador de novo... ou então fazes mais ou menos o que dr_tuborg disse... usas um hidden field com o id do utilizador que selecioanste previamente na select e na apgina onde aparece a pergunta sim/não, escusas de voltar a mostrar o form com o select...

    tens ainda outra opção que é a maneira como eu uso sempre... um bocadinho de javascript que ao fazer click no botão ele faz uma pergunta com sim e não, ao clciar em sim ele processa o codigo do form, ao clicar em não, n faz nada, é como se n tivesses clicado no botão.
     
  5. Crisis

    Crisis Power Member

    Obrigado desde já a todos pela ajuda, consegui resolver o problema graças a ajuda do Marsupillami, e consegui tirar tambem 2 boas ideias, como a utilização de hidden fields e de javascipt cuja utilização vai ficar para o fim, ja que escolhi fazer este programa de gestão de clientes em php vou aproveitar para explora-lo ao maximo ja que é uma linguagem que estou a aprender sozinho e desde o inicio :)

    Cumprimentos e obrigado
    Rafael Silva
     

Partilhar esta Página