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?
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!
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
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
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'])).....
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?
Acabei de experimentar da maneira que disseste e.....nao da!! Como é possivel?? Ele continua a nao fazer echo.......Vou postar aqui o codigo todo.
PHP: <?phprequire_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>
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.
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?
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.
angelofwisdom és um génio pah! resultou finalmente!! Eu usei o onlick do dreamweaver! ele fez automaticamente....e era isso que tava a inibir o POST...muito obrigado mesmo!