Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
boas. tenho uma tabela dinamica onde aplico filtros através de uma combo. o que acontece, é que ao mudar a página, o mesmo filtro é desfeito, tendo eu que aplicar novamente o filtro. n haverá solução para manter o filtro rodando pelas páginas?
a combo:
<td><label for="antes"></label>
<select name="antes" id="antes">
<option value="------------"></option>
<?php
do {
?>
<option value="<?php echo $row_dataant['dataa']?>"><?php echo $row_dataant['dataa']?></option>
<?php
} while ($row_dataant = mysql_fetch_assoc($dataant));
$rows = mysql_num_rows($dataant);
if($rows > 0) {
mysql_data_seek($dataant, 0);
$row_dataant = mysql_fetch_assoc($dataant);
}
?>
</select></td>>
Usa uma variável de sessão para salvar o filtro.
Coloca no começo da página:
$_SESSION['antes'] = isset($_SESSION['antes'])?$_SESSION['antes']:$_POST['antes'];
e no filtro altera essa parte:
<option value="<?php echo $row_dataant['dataa']?>" <?php if($row_dataant['dataa']==$_SESSION['antes'])echo 'selected'?>><?php echo $row_dataant['dataa']?></option>
obrigado pela ajuda... mas agora dá-me este erro:
Notice: Undefined index: antes in C:\wamp\www\TMN\tmn12.php on line 3
Tenta inverter:
$_SESSION['antes'] = isset($_POST['antes'])?$_POST['antes']:$_SESSION['antes'];
na mesma pagina onde esta aparecendo a pesquisa você preenche os campos com os valores que você enviou para a pesquisa...
Um Exemplo
<select name="antes" id="antes">
<option value="1" <?php if ($_GET['antes'] == "1") { echo "selected"; } ?>>1</option>
<option value="2" <?php if ($_GET['antes'] == "2") { echo "selected"; } ?>>2</option>
<option value="3" <?php if ($_GET['antes'] == "3") { echo "selected"; } ?>>3</option>
<option value="4" <?php if ($_GET['antes'] == "4") { echo "selected"; } ?>>4</option>
<option value="5" <?php if ($_GET['antes'] == "5") { echo "selected"; } ?>>5</option>
</select>
Cara uma coisa, pq ao invez de você utilizar o DO WHILE você não utiliza o WHILE normal???
Que dessa sua forma ele passa sempre a primeira vez, mesmo se não tiver dados no seu banco....
<select name="antes" id="antes">
<?php
while ($row = mysql_fetch_array($sql)) {
$codigo = $row["codigo"];
$nome = $row["nome"];
if ($_GET['antes'] == $codigo) {
echo "<option value='$codigo' selected>$nome</option>";
} else {
echo "<option value='$codigo'>$nome</option>";
}
}
?>
</select>
Usa uma variável de sessão para salvar o filtro.
Coloca no começo da página:
$_SESSION['antes'] = isset($_SESSION['antes'])?$_SESSION['antes']:$_POST['antes'];
e no filtro altera essa parte: