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

associar um código php um botão (form)

Discussão em 'Web Development' iniciada por The Dealer, 2 de Março de 2009. (Respostas: 27; Visualizações: 3850)

  1. The Dealer

    The Dealer Power Member

    Estou com uma duvida muito básico. Tenho um simples botão cujo código html é o seguinte:

    Código:
    <form id="form1" name="form1" method="post" action="">
              <label>
                <input type="submit" name="button" id="button" value="Submit" />
              </label>
            </form>
    E queria-lhe associar código php ou seja

    Código:
    <?php $sql = mysql_query("drop table aluno"); ?>
    Eu estava habituado a colocar (por exemplo) no action do form "apagar.php", mas se quero fazer tudo na mesma página, como fazer?

    EDIT: Tal como eu pressupus, basta colocar o código dentro do action, só que tinha-me enganado :)
     
  2. The Dealer

    The Dealer Power Member

    alias, resolvi um problema mas criei outro...

    Funciona muito bem, o problema é que sempre que faz refresh à pagina, ele executa o drop table na mesma... Poderiam-me ajudar?

    Código:
    <form id="form1" name="form1" method="post" action="<?php $sql = mysql_query("drop table alunosso"); ?>">
                <label>
                  <div align="center">
                    <input type="submit" name="button" id="button" value="Confirmar" />
                  </div>
                </label>
              </form>
     
  3. tenta fazer o seguinte:
    Código:
    <?php if( POST['button'] == "confirmar"){
    mysql_query("drop table aluno");
    }
    
    <form id="form1" name="form1" method="post" action="pagina.php">
                <label>
                  <div align="center">
                    <input type="submit" name="button" id="button" value="Confirmar" />
                  </div>
                </label>
              </form> 
    
    substitui onde diz "pagina.php" pelo nome da pagina onde tens o código e deve funcionar... espero ter ajudado
     
  4. The Dealer

    The Dealer Power Member

    Mesmo acrescentado o ?> que te esqueceste, dá-me parse erro :(
     
  5. Sa[n]dman

    Sa[n]dman Power Member

    O erro tá na primeira linha:
    Código:
    <?php if( $_POST['button'] == "confirmar"){
    
    faltava o "$_" antes do POST ;)
    fecha o php depois do fechar chaveta do if
     
  6. The Dealer

    The Dealer Power Member

    Obrigado :) no entanto, dá-me este erro:
    Como corrigir?

    Código:
    <?php if( $_POST['button'] == "confirmar"){
                        mysql_query("drop table aluno");
                    }
                    ?>
    
    <form id="form1" name="form1" method="post" action="SO.php">
                <label>
                  <div align="center">
                    <input type="submit" name="button" id="button" value="Confirmar" />
                  </div>
                </label>
              </form>
              
              </p>
          </div>
     
  7. hummmm, tenta duma maneira um pouco diferente:

    Código:
    <?php if( $_POST['asdf'] == "x"){
         mysql_query("DROP TABLE aluno");
         }
     ?>
    
    <form id="form1" name="form1" method="post" action="SO.php">
                <label>
                  <div align="center">
                    <div><input type="hidden" name="asdf" value="x"/></div>
                    <input type="submit" name="button" id="button" value="Confirmar" />
                  </div>
                </label>
              </form>
              
              </p>
          </div>
    espero que assim funcione :P
    a diferença é que vai enviar um valor através dum input "invisível" (type="hidden") e não atraves do botão em si (onde diz "asdf" e "x" podes meter os valores que quiseres que não deve fazer diferença). Btw apesar do input ser "invisível" convém metelo dentro duma DIV se quiseres validar o html mais tarde..
     
  8. AliFromCairo

    AliFromCairo Power Member

    Podes utilizar a função isset para verificar se $_POST["button"] está definido.
     
  9. The Dealer

    The Dealer Power Member

    Continua-me a dar undefined index.... :(

    EDIT:

    Experimentei isto, mas quando carrego, não acontece "nada"...

    Código:
    <?
         include("Connections\connectDB.php");
         if (isset($_POST['button']))
             {
                mysql_query("DROP table alunosso");
    
             }
         ?>
     <form method="post"  action="SO.php">
     <button type="submit" name="button" value="button">Button</button>
     <button type="submit" name="clear" value="clear">Clear</button>
     </form>
     
    Última edição: 2 de Março de 2009
  10. AliFromCairo

    AliFromCairo Power Member

    Precisas de ter o atributo action do form preenchido.
     
  11. The Dealer

    The Dealer Power Member

    Continua a não dar >(
     
  12. AliFromCairo

    AliFromCairo Power Member

    Assumindo que o ficheiro PHP que tens na action é o nome da próprio ficheiro, experimenta adicionar method="POST" ao form, e colocar o atributo id="button" no button.
     
  13. infor69

    infor69 Power Member

    não tenho a certeza disto, mas será que o button não é uma tag reservada? se deres outro nome ao botão?
     
  14. The Dealer

    The Dealer Power Member

    Não dá...

    Código:
         <?
         include("Connections\connectDB.php");
         if (isset($_POST['button']))
             {
                mysql_query("DROP table alunosso");
    
             }
         ?>
     <form method="POST" id="button" action="SO.php">
     <button type="submit" name="button" value="button">Confirmar</button>
     </form>
     
  15. The Dealer

    The Dealer Power Member

    Boa ideia, mas também nao...
     
  16. AliFromCairo

    AliFromCairo Power Member

    Hmm, é <input type="..."/> e não <button type="..."/>. Já agora, o id que sugeri colocar era também no input e não no form.
     
  17. The Dealer

    The Dealer Power Member

    Mas estará embruxado? Está assim, mas ainda nao funciona:

    Código:
     <?
         include("Connections\connectDB.php");
         if (isset($_POST['button2']))
             {
                mysql_query("DROP table alunosso");
    
             }
         mysql_free_result($resultado);
        ?>
     <form method="POST" id="button2" action="SO.php">
     <input type="submit" name="button2" id="button2" value="button2" />
     </form>
    Código:
     <?
         include("Connections\connectDB.php");
         if ($_POST['button2'] == "button2")
             {
                mysql_query("DROP table alunosso");
    
             }
         mysql_free_result($resultado);
        ?>
     <form method="POST" id="button2" action="SO.php">
     <input type="submit" name="button2" id="button2" value="button2" />
     </form>
    Penso que são estas as duas soluções que mais perto estão da "verdade"...
     
    Última edição: 3 de Março de 2009
  18. Sa[n]dman

    Sa[n]dman Power Member

    gotcha :P

    Falta-te o php depois do <?. :)

    Código:
    [COLOR="Red"]<?php[/COLOR]
    	if (isset($_POST['button'])){
    		mysql_query("DROP table alunosso");
    	}
    ?>
    <form method="post" action="teste.php">
    <button type="submit" name="button" value="button">Button</button>
    <button type="submit" name="clear" value="clear">Clear</button>
    </form>
    
    Cumps
     
  19. The Dealer

    The Dealer Power Member

    Mas não é que é mesmo? Incrivel! Pensava que era a mesma coisa!

    És o maior :x2:

    Já agora, há alguma forma de fazer um refresh à pagina (mas só um) após a acção deste botão?

     
  20. zoidberg

    zoidberg Folding Member

    podes usar o header location para enviar o user para a página novamente, mas sem fazer o request do $POST :)

    PHP:

    <?php
        
    if (isset($_POST['button'])){
            
    mysql_query("DROP table alunosso");
            
    header("Location: teste.php");
        }
    ?>
    <form method="post" action="teste.php">
    <button type="submit" name="button" value="button">Button</button>
    <button type="submit" name="clear" value="clear">Clear</button>
    </form>

    ou podes usar o :
    PHP:
    header("Location: ".$_SERVER['HTTP_REFERER']);



    para ires para a pagina de onde vens



    ou então javascript ...
     
    Última edição: 3 de Março de 2009

Partilhar esta Página