david_carlos Posted April 22, 2015 at 12:33 PM Report Share #581637 Posted April 22, 2015 at 12:33 PM (edited) Boas, ando já aqui a uns dias a batalhar como manter o valor da combobox depois do primeiro submit aqui vai o código ver se me ajudam <form action="" method="post" > <select name="cb_tabelas" > <option value="0">--Selecionar Categoria--</option> <option value="1">Marcas</option> <option value="2">Produtos</option> <option value="3">Projectos</option> <option value="4">Promoções</option> <option value="5">Enventos</option> <option value="6">Nossas Marcas</option> </select> <input name="editar" type="submit" value="Editar" /> <?php include("mysql.php"); if(isset($_POST['cb_tabelas'])) { $var1 = $_POST['cb_tabelas']; switch ($var1){ case 0: echo "Selecione uma Categoria que queira Editar"; break; case 1: $sql = "select * from marcas"; $query = mysql_query($sql);?> <table width="99%" border="1" cellspacing="0" cellpadding="0"> <tr> <th colspan="4" scope="col"><p style="background: url(images/img007.png) no-repeat left top;">Clientes</p></th> </tr> <tr> <td width="9%"><input name="Delete" type="submit" id="Delete" value="Delete"></td> <td width="9%"></td> <td width="76%"> </td> </tr> </table> <?php echo "<table width=\"99%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">"; echo "<tr>"; echo "<th scope=\"col\" style=\"font-size:9px;\">#</th>"; echo "<th scope=\"col\" style=\"font-size:9px;\">id</th>"; echo "<th scope=\"col\" style=\"font-size:9px;\">Nome</th>"; echo "<th scope=\"col\" style=\"font-size:9px;\">Logo</th>"; echo "</tr>"; while($row = mysql_fetch_array($query)){ ?> <td align="center" ><input type="checkbox" name="arquivo[]" value="<?php echo $row['id_marca']; ?>"/></td> <?php echo $row['id_marca']; ?> <?php echo"<td style=\"font-size:11px;\" style=\"text-align:center\">" ; echo $row['id_marca']."</td>"; echo"<td style=\"font-size:11px;\" style=\"text-align:center\">"; echo $row['nome']."</td>"; echo"<td style=\"font-size:11px;\" style=\"text-align:center\">"; echo $row['logo']."</td>"; echo"</tr>"; } echo "</table>"; ?> <?php if(isset($_POST['Delete'])) { foreach($_POST['arquivo'] as $checkbox) { echo "OKKKKKKKK"; #mysql_query("DELETE FROM marcas WHERE id_marca='$checkbox'"); #echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php?site=editar\">"; }} if(isset($_POST['InserirCliente'])) { echo "<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php?site=registar\">"; } echo "</form>"; break; case 2: echo "Produtos"; break; case 3: break; case 4: break; case 5: break; } }?> Edited April 22, 2015 at 01:00 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
MROverclock Posted April 22, 2015 at 01:24 PM Report Share #581639 Posted April 22, 2015 at 01:24 PM (edited) A minha sugestão, que não sou muito expert, é: Fazer a combo dentro do PHP, depois ao processares o POST apanhas qual foi a opção selecionada e nessa colocas o selected="true" <option value="XX" selected="true">opção XX</option> ou simplesmente <option value="XX" selected>opção XX</option> Para ser mais facil secalhar carregas os valores e as strings para um array e depois constrois isto com um While ou algo parecido. Não sei se há algo mais simples Deixo-te aqui um pedaço de um código que fiz numa página minha há pouco tempo. Neste caso foi usado o GET em vez de POST, mas vai dar ao mesmo, apenas muda o método: if($_SERVER['REQUEST_METHOD'] === 'GET') { (...) $idColor = $_GET['idColor']; (...) } (...) //Aqui começas a construir a combo $ddlistColors = "<select id='color' name='color'>"; //aqui fui buscar à base de dados a tabela de onde fui buscar os dados $colorTable = $db->getColorList(); while($row = mysql_fetch_array($colorTable)) { if($idColor == $row['idColor']) //Se for esta a seleccionada $ddlistColors .= "<option value='$row[idColor]' selected>$row[color]</option>"; else //se não for a seleccionada não mete o "selected" $ddlistColors .= "<option value='$row[idColor]'>$row[color]</option>"; } //Fecha a combo $ddlistColors .= "</select>"; Espero que tenha ficado suficientemente claro! Se esta não for a maneira mais simples/eficaz também agradeço sugestões Edited April 22, 2015 at 01:39 PM by apocsantos geshi Link to comment Share on other sites More sharing options...
chbcl Posted April 22, 2015 at 02:40 PM Report Share #581643 Posted April 22, 2015 at 02:40 PM Não entendi muito bem a tua dúvida developer @ filipealves.net filipealvesbcl [a] gmail.com github.com/filipealvesbcl Link to comment Share on other sites More sharing options...
MROverclock Posted April 22, 2015 at 02:58 PM Report Share #581646 Posted April 22, 2015 at 02:58 PM chbcl Pelo que percebi ele faz submit e quem vai tratar o submit é a própria página (submit para a própria página) e ao fazer submit ele quer que o valor sleccionado se mantenha em vez de voltar para o default de quando é aberto a primeira vez Link to comment Share on other sites More sharing options...
chbcl Posted April 22, 2015 at 03:41 PM Report Share #581655 Posted April 22, 2015 at 03:41 PM (edited) chbcl Pelo que percebi ele faz submit e quem vai tratar o submit é a própria página (submit para a própria página) e ao fazer submit ele quer que o valor sleccionado se mantenha em vez de voltar para o default de quando é aberto a primeira vez Se bem entendi, ele pode fazer isso em javascript, mas se insiste em criar em PHP pode ao fazer o print das options fazer algo assim: FORMA NÃO ORGANIZADA: <?php $array = [ '1' => [ 'nome' => 'Marcas', 'selected' => FALSE ], '2' => [ 'nome' => 'Marcas', 'selected' => FALSE ], '3' => [ 'nome' => 'Projectos', 'selected' => FALSE ], '4' => [ 'nome' => 'Promoções', 'selected' => FALSE ], '5' => [ 'nome' => 'Eventos', 'selected' => FALSE ], '6' => [ 'nome' => 'Nossas Marcas', 'selected' => FALSE ] ]; if(isset($_POST['cb_tabelas'])){ if($_POST['cb_tabelas'] == 0){ print "ERRO: Escolha uma opção válida!"; } else{ $array[$_POST['cb_tabelas']]['selected'] = TRUE; } ?> <form action="" method="post" > <select name="cb_tabelas" > <option value="0">--Selecionar Categoria--</option> <?php foreach($array as $key => $value){ if($value['selected'] == TRUE){ print "<option value=\"". $key ."\" selected>". $value['nome'] ."</option>"; } else{ print "<option value=\"". $key ."\" >". $value['nome'] ."</option>"; } } ?> </select> <input name="editar" type="submit" value="Editar" /> </form> <?php } else{ ?> <form action="" method="post" > <select name="cb_tabelas" > <option value="0">--Selecionar Categoria--</option> <?php foreach($array as $key => $value){ if($value['selected'] == TRUE){ print "<option value=\"". $key ."\" selected>". $value['nome'] ."</option>"; } else{ print "<option value=\"". $key ."\" >". $value['nome'] ."</option>"; } } ?> </select> <input name="editar" type="submit" value="Editar" /> </form> <?php } ?> FORMA ORGANIZADA: <?php function print_select($array){ ?> <form action="" method="post" > <select name="cb_tabelas" > <option value="0">--Selecionar Categoria--</option> <?php foreach($array as $key => $value){ if($value['selected'] == TRUE){ print "<option value=\"". $key ."\" selected>". $value['nome'] ."</option>"; } else{ print "<option value=\"". $key ."\" >". $value['nome'] ."</option>"; } } ?> </select> <input name="editar" type="submit" value="Editar" /> </form> <?php } $array = [ '1' => [ 'nome' => 'Marcas', 'selected' => FALSE ], '2' => [ 'nome' => 'Marcas', 'selected' => FALSE ], '3' => [ 'nome' => 'Projectos', 'selected' => FALSE ], '4' => [ 'nome' => 'Promoções', 'selected' => FALSE ], '5' => [ 'nome' => 'Eventos', 'selected' => FALSE ], '6' => [ 'nome' => 'Nossas Marcas', 'selected' => FALSE ] ]; if(isset($_POST['cb_tabelas'])){ if($_POST['cb_tabelas'] == 0){ print "ERRO: Escolha uma opção válida!"; } else{ $array[$_POST['cb_tabelas']]['selected'] = TRUE; } print_select($array); } else{ print_select($array); } ?> Edited April 22, 2015 at 04:26 PM by chbcl developer @ filipealves.net filipealvesbcl [a] gmail.com github.com/filipealvesbcl Link to comment Share on other sites More sharing options...
capesone Posted April 25, 2015 at 04:00 AM Report Share #581826 Posted April 25, 2015 at 04:00 AM Ao carregares as opções da lista, para cada 1, verificas se o valor da opção é aquele que pretendes que tens armazenado em algum lado presumindo que estas obter as opções de alguma lista. #valor pretendido $opcoes = null; defines string para nao dar erro de nao definido ao concatenar a string $pretendido = "xxxuuu"; for/foreach/while{ #percorres lista de opçoes if($value == $pretendido) $selected ="selected=\"selected\""; else $selected = null; $opcoes.="<option value=\"abc\" {$selected}>Texto</option>"; } echo "<select name=\"yyyy\">{$opções}</select>"; A opção que o sistema marcar como selected irá ficar automaticamente selecionada Link to comment Share on other sites More sharing options...
Solution david_carlos Posted April 29, 2015 at 01:46 PM Author Solution Report Share #582122 Posted April 29, 2015 at 01:46 PM (edited) Assim Resolveu tudo 😛 <!--<select name="cb_categoria" id="select"> <option <?php# if ($row['categoria'] == 1 ) echo 'selected'; ?> value="1">Películas</option> <option <?php# if ($row['categoria'] == 2 ) echo 'selected'; ?> value="2">Car Audio</option> <option <?php# if ($row['categoria'] == 3 ) echo 'selected'; ?> value="3">Vinil</option> </select> --> Edited April 29, 2015 at 01:47 PM by david_carlos 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