Ivo Pereira Posted December 21, 2009 at 05:03 PM Report Share #301700 Posted December 21, 2009 at 05:03 PM Boas pessoal, é o seguinte, imaginem que tenho um formulário, e nesse formulário, tenho um optionbox que me vai ter várias opções como Editar, Eliminar e Listar. De acordo com essas opções e com um item seleccionado numa radiobox também nessa página, o utilizador clicará e submeterá um formulário que irá dar a outra parte, para verificar que opção foi escolhida (Editar, Eliminar, Listar), mas com isto, nunca perdendo o valor do radio. Formulário: <table width="100%" border="1"> <tr> <td> </td> <td><strong>URL:</strong></td> <td><strong>Miniatura:</strong></td> <td><strong>Data:</strong></td> <td><strong>Título:</strong></td> <td><strong>Descrição:</strong></td> </tr> <tr> <?php require_once('db/ligar.php'); $sql = mysql_query("SELECT ID FROM tv_noticias ORDER BY date"); for ($pass = 0; $pass < mysql_num_rows($sql); $pass++){ $query = mysql_query("SELECT ID FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td><input type="radio" name="selectedid" value="'.mysql_result($query, 0).'"/></td>'; $query = mysql_query("SELECT url FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td><a href="'.mysql_result($query, 0).'" target="_blank">'.mysql_result($query, 0).'</a></td>'; $query = mysql_query("SELECT thumbnail FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td><a onclick="alert(\''.mysql_result($query, 0).'\')" href="#"><img src="'.mysql_result($query, 0).'" height="60" width="94" alt="'.mysql_result($query, 0).'" border="0" /></a></td>'; $query = mysql_query("SELECT date FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td>'.mysql_result($query, 0).'</td>'; $query = mysql_query("SELECT title FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td>'.mysql_result($query, 0).'</td>'; $query = mysql_query("SELECT description FROM tv_noticias WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td>'.mysql_result($query, 0).'</td>'; echo "</tr>"; } ?> </tr></table> </div> <br /><br /> <form action="accao.php" method="POST"> <div align="right"> Acção: <select size="1" name="accao"> <option selected value="escolher">Escolher...</option> <option value="editar">Editar</option> <option value="eliminar">Eliminar</option> </select> <input type="submit" value="OK" name="actuar" /> </div> </form> accao.php <?php switch ($_POST['accao']) { case "editar"; echo "<script type=\"text/javascript\">\n"; echo "window.location.href='noticias/editar.php'\n"; echo "</script>"; break; case "eliminar"; echo "Eliminar"; break; default; echo "Listar"; break; } ?> Mas quando vai para a página noticias/editar.php, já não vai ter o valor do ID seleccionado no radio. noticias/editar.php: <?php include('../db/ligar.php'); ?> <div id="mainContent"> <form action="editnoticia.php" method="POST"> <h1 class="a">URL da miniatura:<br /> <?php $query = mysql_query("SELECT thumbnail FROM tv_noticias WHERE ID = ".$_POST['selectedid']." LIMIT 1"); echo '<input type="text" name="thumbnail" size="75" maxlength="70" value="'.mysql_result($query, 0).'" />'; ?> Aqui nesta última parte, ele já não vai retornar nada no $_POST['selectedid'], pois entretanto já o perdeu no redireccionamento. Se eu utilizar o header em vez do javascript, vai-me dizer que os headers já foram enviados. Aceitam-se sugestões 🙂 Abraço 🙂 Link to comment Share on other sites More sharing options...
hbarquero Posted December 21, 2009 at 05:57 PM Report Share #301708 Posted December 21, 2009 at 05:57 PM ao fazeres o window.location.href='noticias/editar.php'\n"; estas a mandar mudar de página, e logicamente que perdes os valores do Post, podes é fazer o seguinte: <?php switch ($_POST['accao']) { case "editar"; include ("noticias/editar.php"); break; case "eliminar"; include ("noticias/eliminar.php"); break; default; include ("noticias/listar.php"); break; } ?> podes tambem criar funções no próprio ficheiro que estas a receber o Post: <?php switch ($_POST['accao']) { case "editar"; funcao_editar(); break; case "eliminar"; funcao_eliminar(); break; default; funcao_listar(); break; } function funcao_editar() { echo ("editar"); } function funcao_eliminar() { echo ("eliminar"); } function funcao_listar() { echo ("listar"); } ?> Ou ainda podes via javascript antes de fazer o submit, verificar qual a opção que esta seleccionada, e mudar o Action do forma, via javascript, enviado para a página correcta Tudo o que não provoca a minha morte, torna-me mais forte.http://formacao-cursos.com Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 21, 2009 at 06:17 PM Author Report Share #301709 Posted December 21, 2009 at 06:17 PM Mas isso não me iria incluir o ficheiro, independentemente do que lá estava? Link to comment Share on other sites More sharing options...
hbarquero Posted December 21, 2009 at 06:30 PM Report Share #301712 Posted December 21, 2009 at 06:30 PM Mas isso não me iria incluir o ficheiro, independentemente do que lá estava? Se te referes ao: include ("noticias/editar.php"); e aos outros 2, sim, e não, aqui vai incluir as funções php, html, ou que lá tiveres, cabe-te a ti, criares o ficheiro com o que te interessa que seja mostrado quando é chamado. Tudo o que não provoca a minha morte, torna-me mais forte.http://formacao-cursos.com Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 21, 2009 at 06:38 PM Author Report Share #301714 Posted December 21, 2009 at 06:38 PM Por isso é que eu queria fazer o redirect! Para aparecer só o conteúdo da outra página... Link to comment Share on other sites More sharing options...
hbarquero Posted December 21, 2009 at 09:52 PM Report Share #301740 Posted December 21, 2009 at 09:52 PM Então fazes o redirect depois de teres feito as alterações que pretendes. usando as tarefas dentro dos cases, ou por funções, como eu te coloquei ai em cima. Tudo o que não provoca a minha morte, torna-me mais forte.http://formacao-cursos.com Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now