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

Dúvida muito rápida acerca do POST e do GET

Discussão em 'Web Development' iniciada por hardmotion, 4 de Junho de 2008. (Respostas: 12; Visualizações: 704)

  1. hardmotion

    hardmotion Power Member

    PHP:
    If (isset ($_POST['barra']) and is_null ($_GET['tipo']))

    $values $_POST['barra'];
    foreach (
    $values as $a){
    $result=mysql_query("DELETE FROM sessao_data_espectaculo WHERE id_data= '".$a."' AND id_espectaculo=1");
    }
    }

    If (isset (
    $_POST['barra']) and isset ($_GET['tipo']))
    {
    echo 
    "echo";
    }
    Porque é que nunca consigo entrar no segundo IF?
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Não sei se será disto, mas troca o "and" por um "&&".
     
  3. hardmotion

    hardmotion Power Member

    Não é disso...tanto nao é que no primeiro IF entra sem problema.

    E no url tenho: espec_sessoes.php?tipo=sessao por isso o GET está definido...sinceramente nao sei do que poderá ser...mas obrigado pela resposta!
     
  4. MPalhas

    MPalhas Power Member

    pelo que testei agora, quando uma variavel tem o valor null, a função isset retorna falso.
    ou seja, nesse código, se entrar no primeiro if não entra no segundo, e vice-versa

    EDIT: vi agora o teu post. se tens a certeza que a variavel do GET está definida, então verifica a do POST, podes ter o nome mal escrito em alguma parte ou assim
     
    Última edição: 4 de Junho de 2008
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Põe && no primeiro também. Se tens ?tipo=sessao, então is_null($_GET['tipo']) não pode ser true ("sessao" != null).
    Se entra no primeiro if (onde 'tipo' é null), não pode entrar no segundo if (onde 'tipo' não pode ser null).
    Edit - como o MPalhas disse :P
     
  6. hardmotion

    hardmotion Power Member

    Mais uma vez obrigado pela ajuda. Eu sei que nao pode entrar nos dois IF's lol é logico...e ele entra no 1º se o GET for nulo, por isso o POST está bem escrito. No entanto se o GET for nao nulo, ou seja, se usar o url espec_sessoes.php?tipo=sessao ele nao entra no 1º nem no 2º! E claro que devia entrar no segundo...

    Isso é que nao entendo! O problema so pode ser daqui: If (isset ($_POST['barra']) and isset ($_GET['tipo'])).....
     
  7. h4des

    h4des Power Member

    PHP:
    if(isset($_POST['barra']) {
        if(
    is_null($_GET['tipo'])) {
            
    $values $_POST['barra'];
            foreach (
    $values as $a) {
                
    $result=mysql_query("DELETE FROM sessao_data_espectaculo WHERE id_data= '".$a."' AND id_espectaculo=1");
            }
        } else {
            echo 
    "echo";
        }

    }
    Se fizeres assim, não vai dar ao mesmo?
     
  8. hardmotion

    hardmotion Power Member

    Acabei de experimentar da maneira que disseste e.....nao da!! Como é possivel?? Ele continua a nao fazer echo.......Vou postar aqui o codigo todo.
     
  9. hardmotion

    hardmotion Power Member

    PHP:
    <?php
    require_once('../Connections/config.php'); 
    require_once(
    '../Connections/ligabd.php'); 
    require_once (
    '../classes/espectaculo.php');
    if(isset(
    $_POST['barra'])) {
        if(
    is_null($_GET['tipo'])) {
            
    $values $_POST['barra'];
            foreach (
    $values as $a) {
                
    $result=mysql_query("DELETE FROM sessao_data_espectaculo WHERE id_data= '".$a."' AND id_espectaculo=1");
            }
        } else {
            echo 
    "echo";
        }

    }  
    //If (isset ($_POST['barra']) and is_null ($_GET['tipo']))

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript">
    <!--
    function MM_goToURL() { //v3.0
      var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
      for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
    }
    //-->
    </script>
    </head>

    <body>
    <form id="form1" name="form1" method="post" action="espec_sessoes.php">
      <label>
      <select name="barra[]" multiple="multiple" id="select" size="5">
          <?php 
    $result
    =mysql_query("SELECT data.id_data,data.dia_mes_ano FROM data, sessao_data_espectaculo WHERE sessao_data_espectaculo.id_data = data.id_data AND id_espectaculo=1") ;

    while (
    $ROW2=mysql_fetch_array($result)){
    echo 
    "<option value=";
    echo 
    $ROW2['id_data'];
    echo 
    ">";
    echo 
    $ROW2['dia_mes_ano'];
    echo 
    "</option>";
    }
    ?>
      </select>
      </label>
      <p>
        <label>
    //ao carregar aqui funciona bem
        <input  type="submit"  name="Submit" id="button" value="Eliminar" />
        </label>
      </p>
      <p><a href="espec_data.php">adicionar</a> </p>
      <p>
        <label>
    //ao clicar aqui devia aparecer o "echo"
        <input name="button2" type="submit" id="button2" onclick="MM_goToURL('parent','espec_sessoes.php?tipo=sessao');return document.MM_returnValue" value="ver sessoes" />
        </label>
      </p>
    </form>

    </body>
    </html>
     
  10. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Tens a certeza em como está a ser enviado um POST?
    Escreve antes do segundo if
    PHP:
    echo "<pre>";
    print_r($_GET);
    echo 
    "<hr>";
    print_r($_POST);
    echo 
    "</pre>";
    e mostra o resultado.
     
  11. hardmotion

    hardmotion Power Member

    Realmente o post nao está a ser feito...Mas porque? O botao devia fazer submit na mesma. Será por eu lhe ter posto um onclick?
     
  12. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Acho que sim.
    Não me lembro bem como é isto no JavaScript, mas muda o onclick para
    onclick="document.form1.action='espec_sessoes.php?tipo=sessao'"
    Se por acaso isto resultar, também não sei até que ponto é cross-browser.

    Acho que o que se passa é que ao clicar nesse botão, ele navega para outra página, em vez de fazer submit do formulário.
     
  13. hardmotion

    hardmotion Power Member

    angelofwisdom és um génio pah! :D resultou finalmente!!

    Eu usei o onlick do dreamweaver! ele fez automaticamente....e era isso que tava a inibir o POST...muito obrigado mesmo!
     

Partilhar esta Página