Mi sa che faccio prima a postare tutto il codice, l'avete voluto voi
:
questo è il codice principale
Codice PHP:
<?php
if(!isset($_SESSION))
{
session_cache_limiter('private, must-revalidate');
session_start();
}
include("config.php");
include("selezione.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="vendita, vendesi, compro, affitto, locazione, appartamento, appartamenti, commerciali, uffici, industriali, annunci immobiliari, immobiliare, milano" />
<title>Diffusione Immobiliare - proposte</title>
<link rel="stylesheet" href="css/kriframework.css" type="text/css" media="screen" />
<link rel="stylesheet" href="js/prettyPhoto/css/prettyPhoto.css" type="text/css" media="screen" charset="utf-8" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
<link rel="icon" href="http://www.diffusioneimmobiliare.com/Images/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="http://www.diffusioneimmobiliare.com/Images/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/style1.css" type="text/css" media="screen" />
<!--
<link rel="stylesheet" href="css/style2.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/style3.css" type="text/css" media="screen" />
<link rel="stylesheet" href="css/style4.css" type="text/css" media="screen" />
-->
<script type='text/javascript' src='js/jquery.js'></script>
<script type='text/javascript' src='js/cufon.js'></script>
<script type='text/javascript' src='js/geosans.js'></script>
<script type='text/javascript' src="js/prettyPhoto/js/jquery.prettyPhoto.js" charset="utf-8"></script>
<script type='text/javascript' src='js/custom.js'></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-20367782-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body id='top' >
<div class="wrap_fullwidth" id='head'>
</div>
<div class="wrap_fullwidth" id='second_header'>
<div class='center'>
[url="index.html"][img]images/skin1/logo_sito.jpg?<?php echo time(); ?>[/img][/url]
<ul id="nav">
[*][url="index.html"]Home[/url]
[*][url="chisiamo.html"]Chi siamo[/url]
<li class='current'>[url="immobili.php"]Proposte[/url]
[*][url="#"]Servizi[/url][*][url="news.html"]News[/url]
[*][url="contact.php"]Contatti[/url]
[/list]
</div>
</div>
<div class="wrap_fullwidth small_margin" id='main'>
<div class='center'>
<div class='info_noslide' id="seleziona">
<form name="selezione" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
<fieldset>
<span class="item_data" style="float:left; padding-right:30px">
CONTRATTO
<input type="radio" name="contratto" value="Vendita" <?php echo $vendita; ?>>Vendita
<input type="radio" name="contratto" value="Locazione" <?php echo $locazione; ?>>Locazione
</span>
<span class="item_data" style="float:left; padding-right:30px">
CATEGORIA
<input type="radio" name="categoria" value="Residenziale" <?php echo $residenziale; ?>>Residenziale
<input type="radio" name="categoria" value="Commerciale" <?php echo $commerciale; ?>>Commerciale
<input type="radio" name="categoria" value="Industriale" <?php echo $industriale ?>>Industriale
</span>
<span class="item_data" style="float:left; padding-right:30px">
TIPOLOGIA
<select name="tipologia" onchange="this.form.submit()" style="font-size:10px">
<option selected="<?php $default_tipologia; ?>"><?php echo $default_tipologia; ?></option>
<?php if ($default_tipologia!="OGNI") {//con PHP lavoro dinamicamente
echo "<option value=\"OGNI\">OGNI</option>"; }//evito che la option OGNI venga ripetuta
$query="SELECT tipologia FROM immobili GROUP BY tipologia ORDER BY tipologia"; //seleziono evitando i duplicati con GROUP
$risultato=mysql_query($query) or die(mysql_error()); //interrogo il db (se vuoto da errore)
while($riga=mysql_fetch_array($risultato)){//esploro tutta la tabella estraendo i record uno alla volta
$tipologia=$riga['tipologia'];
if ($tipologia==$default_tipologia) continue;//quando trova calori uguali a quello precedentemente selezionato salta ciclo
echo "<option value=\"$tipologia\">$tipologia</option>";//per ogni riga creo una opzione di selezione
}//fine del while
?>
</select>
</span>
<span class="item_data" style="float:left; padding-right:30px">
DOVE
<select name="dove" onchange="this.form.submit()" style="font-size:10px">
<option selected="<?php $default_dove; ?>"><?php echo $default_dove; ?></option>
<?php if ($default_dove!="OGNI") {
echo "<option value=\"OGNI\">OGNI</option>"; }
$query="SELECT dove FROM immobili GROUP BY dove ORDER BY dove";
$risultato=mysql_query($query) or die(mysql_error());
while($riga=mysql_fetch_array($risultato)){
$dove=$riga['dove'];
if ($dove==$default_dove) continue;
echo "<option value=\"$dove\">$dove</option>";
}//fine del while
?>
</select>
</span>
<span class="item_data" style="float:left; padding-right:30px">
ZONA
<select name="zona" onchange="this.form.submit()" style="font-size:10px">
<?php
if ((!isset($_POST['dove']) && !isset($_GET['page'])) || //al primo caricamento pagina
$default_dove=="OGNI" || // oppure avevo già sottomesso il form e scelto dove=OGNI
$_POST['dove']=="OGNI") //oppure ho appena selezioanto OGNI nelle option dove
{echo "<option selected=\"OGNI\">OGNI</option>";}
else {
echo "<option selected=\"$default_zona\">$default_zona</option>";
if ($default_zona!="OGNI") {
echo "<option value=\"OGNI\">OGNI</option>"; }
if (isset($_POST['dove'])) {
$form_dove="dove='".$_POST['dove']."' AND";} else {$form_dove="";}
$query="SELECT zona FROM immobili WHERE $form_dove 1=1 GROUP BY zona ORDER BY zona";
$risultato=mysql_query($query) or die(mysql_error());
while($riga=mysql_fetch_array($risultato)){
$zona=$riga['zona'];
if ($zona==$default_zona) continue;
echo "<option value=\"$zona\">$zona</option>";
}//fine del while
}//fine di else
?>
</select>
</span>
<span class="item_data" style="float:right; padding-right:150px">
<input type="hidden" name="immobili" value="1" />
<input align="right" width="100%" type="submit" name="Submit" value="cerca" />
</span>
</fieldset>
</form>
</div>
</div>
<div class="center">
<?php include 'download_pag.php'; ?>
<!--<div class="pagination">
<span class="current">1</span>
[url="#"]2[/url]
[url="#"]3[/url]
[url="#"]4[/url]
[url="#"]5[/url]
[url="#"]6[/url]
[url="#"]7[/url]
</div> -->
</div>
</div>
<div class="wrap_fullwidth" id='breadcrumb_wrap'>
<div class='center'>
<p class='breadcrumb'>
<span class="breadcrumb_info">You are here:</span>
[url="index.html"]Home[/url]
<span> » </span><span class="current_crumb">Proposte</span>
</p>
<ul class="social_bookmarks">
<li class="rss">[url="#"]RSS[/url]
<li class="facebook">[url="#"]Facebook[/url]
<li class="twitter">[url="#"]Twitter[/url]
<li class="flickr">[url="#"]flickr[/url]
<li class="skype">[url="#"]Skype[/url]
[/list]
</div>
</div>
<div class="wrap_fullwidth" id='footer'>
<div class='center'>
<span class='copyright'>All content Copyright © 2010 Diffusione Immobiliare</span>
[url='#top']top[/url]
</div>
</div>
</body>
</html>
mentre questo quello della pagina selezione.php che come vedrete ha lo scopo di memorizzare le scelte fatte e renderle disponibili al form come option selected. Da quando ho aggiunto i controlli di cache in questo file su Firefox non ho più avuto problemi.
Codice PHP:
<?php
if(!isset($_SESSION))//apri sessione solo se non ancora aperta
{
session_cache_limiter('private, must-revalidate');
session_start();
}
// prevent caching (php)
header("Cache-Control: no-cache");
header("Expires: -1");
//condizione che si verifica alla prima apertura pagina immobili.php o alla prima di elenco.php via riservata.php
//page esiste se premo pulsante cambio pagina, immobili se sottometto form in immobili.php e elenco arriva dal form di riservata.php
if((empty($_POST['immobili']) && empty($_GET['page'])) || !empty($_POST['elenco'])){
$_SESSION['default_tipologia']="OGNI"; //select option selected
$_SESSION['default_dove']="OGNI"; //select option selected
$_SESSION['default_zona']="OGNI"; //select option selected
$_SESSION['residenziale']="checked=\"checked\""; //radio button checked
$_SESSION['commerciale']="";
$_SESSION['industriale']="";
$_SESSION['vendita']="checked=\"checked\""; //radio button checked
$_SESSION['locazione']="";
}
if (!empty($_POST['immobili'])) {//se utilizzo il form di selezione
$_SESSION['default_dove']=$_POST['dove'];
$_SESSION['default_zona']=$_POST['zona'];
$_SESSION['default_tipologia']=$_POST['tipologia'];
if ($_POST['contratto']=="Locazione") {//verifico il valore dei radio contratto e memorizzo l'ultima scelta
$_SESSION['locazione']="checked=\"checked\"";
$_SESSION['vendita']="";
}
elseif ($_POST['contratto']=="Vendita") {
$_SESSION['locazione']="";
$_SESSION['vendita']="checked=\"checked\"";
}
if ($_POST['categoria']=="Residenziale") {//verifico il valore dei radio categoria e memorizzo l'ultima scelta
$_SESSION['residenziale']="checked=\"checked\"";
$_SESSION['commerciale']="";
$_SESSION['industriale']="";}
elseif ($_POST['categoria']=="Commerciale") {
$_SESSION['residenziale']="";
$_SESSION['commerciale']="checked=\"checked\"";
$_SESSION['industriale']="";}
elseif ($_POST['categoria']=="Industriale") {
$_SESSION['residenziale']="";
$_SESSION['commerciale']="";
$_SESSION['industriale']="checked=\"checked\"";}
}
$default_tipologia=$_SESSION['default_tipologia']; //select option selected
$default_dove=$_SESSION['default_dove']; //select option selected
$default_zona=$_SESSION['default_zona']; //select option selected
$residenziale=$_SESSION['residenziale']; //radio button checked
$commerciale=$_SESSION['commerciale'];
$industriale=$_SESSION['industriale'];
$vendita=$_SESSION['vendita']; //radio button checked
$locazione=$_SESSION['locazione'];
?>
No includo il file download_pag.php semplicemente perchè questo prende i dati inviati dal fom con il metodo POST e va a leggere nel db con SELECT WHERE, come detto tramite un controllo al primo caricamento pagina rende disponibili tutti i record del db.
Grazie