Non ho idea di cosa ci fai e come lo fai, quindi non so che dirti.
Non ho idea di cosa ci fai e come lo fai, quindi non so che dirti.
Sto facendo un po' di prove ed è questo codice qui che da problemi:
<?php echo (isset($_SESSION['sex']) && $_SESSION['sex'] == 'M') ? 'selected="selected"' : '' ?>
il codice l'ho strutturato così:
Codice PHP:<div class="txt-search">
<?php
session_start();
$_SESSION['sex'] = $_GET['sex'];
?> Sesso : <select name="sex" >
<option value="" >Seleziona</option>
<option value="M" <?php echo (isset($_SESSION['sex']) && $_SESSION['sex'] == 'M') ? 'selected="selected"' : '' ?>>M</option>
<option value="F"<?php echo (isset($_SESSION['sex']) && $_SESSION['sex'] == 'F') ? 'selected="selected"' : '' ?> >F</option></select>
</div>
<?php session_destroy(); ?>
Ah, questo
$_SESSION['sex'] = $_GET['sex'];
va nella parte di script che recupera i dati, altrimenti viene eseguito sempre, anche quando non dovrebbe.
Visto che fai tutto nello stesso file devi riconoscere se stai elaborando i dati o se invece stai ricaricando la pagina dopo averlo fatto.
Penso che tu abbia bisogno di approfondire le tue conoscenze di PHP prima di andare avanti, sembra che tu stia andando avanti un po' a tentoni, studia le due guide che ho in firma.
Già questo non va bene
<div class="txt-search">
<?php
session_start();
Ti ho detto che session_start(); non deve essere preceduto da alcun output e il div è un output.
Output è tutto ciò che viene mostrato sulla pagina.
I file dove devi usare le variabili di sessione devono iniziare tutti così
<?php session_start(); ?>
prima non deve esserci niente, poi ci metti quello che ti pare.
Di nuovo, col db non ho idea di come ci interagisci, quindi non posso dirti perché non ti funziona.
Ma ha anche messo session_destroy alla fine del file, distrugge la sessione dopo averla creata...
Poi quel codice messo così a zonzo vuol dire tutto e niente...
Comunque se il form è GET non capisco perchè utilizzare le sessioni... Sia che reindirizza ad un'altra pagina, sia che ricarica la stessa tutte le info sono presenti nelle array superglobali
Ho risolto così senza nessuna sessione ma con un semplice if posto il codice nel caso qualcuno ne avesse bisogno:
Codice PHP:<div class="txt-search">
Sesso : <select name="sex" >
<option value="" >Seleziona</option>
<option value="M" <?php if ($sex == 'M'){ echo('selected="selected"'); } ?>>M</option>
<option value="F" <?php if ($sex == 'F'){ echo('selected="selected"'); } ?>>F</option>
</select>
</div>
$sex da dove la prendi?
Se prima fai $sex = $_GET['sex'] ok, altrimenti stai sfruttando la direttiva register_globals, ma occhio che quasi nessun servizio hosting online te la mette a disposizione, addirittura sulle versioni più nuove di PHP neanche esiste più.