• User Attivo

    COme resettare una variabile

    Ciao a tutti, ho un problemone, ci sto sopra da circa 15 giorni, le ho provate quasi tutte ma niente da fare. Mi spiego meglio, avete presente le ricerche a select multiple, :arrabbiato:
    Vi posto il codice della index.php
    [PHP]
    echo"
    <form action='index.php?jsx=ricerca' name='search' method='POST'>
    <table background='images/back_ricerca.png' cellspacing='0' cellpadding='0' width='365' height='235' border='0'>
    <tr>
    <td valign='top' width='15' height='40'></td>
    <td></td>
    </tr>
    <tr>
    <td valign='top' width='15' height='25'></td>
    <td>
    <select onchange='document.search.submit()' name='regione' class='elenco_2'>
    <option value=''>Seleziona regione</option>";
    $query_regione = mysql_query("SELECT * FROM regioni ORDER BY descr_regione")
    or die("errore nella query_regione;".mysql_error());
    for($a = 0; $a < mysql_num_rows($query_regione); $a++)
    {
    $a_elenco_regione = mysql_fetch_assoc($query_regione);
    echo"
    <option value='".intval($a_elenco_regione['id_regione'])."'";
    if($id_regione == $a_elenco_regione['id_regione'])
    {
    echo"selected";
    }
    echo">";
    echo"$a_elenco_regione[descr_regione]";
    echo"</option>";
    }
    echo"
    </select>
    </td>
    </tr>
    <tr><td colspan='2' height='8'></td></tr>
    <tr>
    <td valign='top' width='15' height='25'></td>
    <td>
    <select name='provincia' class='elenco_2'>
    <option value=''>Seleziona provincia</option>";
    $query_provincia = mysql_query("SELECT * FROM province
    WHERE id_regione = '$id_regione'")
    or die("errore nella query_provincia;".mysql_error());
    if(isset($id_regione))
    {
    for($b = 0; $b < mysql_num_rows($query_provincia); $b++)
    {
    $a_elenco_provincia = mysql_fetch_assoc($query_provincia);
    echo"
    <option value='".intval($a_elenco_provincia['id_provincia'])."'";
    if($id_provincia == $a_elenco_provincia['id_provincia'])
    {
    echo"selected";
    }
    echo">";
    echo"$a_elenco_provincia[descr_provincia]";
    }
    }
    echo"
    </select>
    </td>
    </tr>
    <tr><td colspan='2' height='8'></td></tr>
    <tr>
    <td valign='top' width='15' height='25'></td>
    <td>
    <select name='costruttore' class='elenco_2'>
    <option value=''>Seleziona marca auto</option>";
    $query_marca = mysql_query("SELECT * FROM marche ORDER BY descr_marca")
    or die("errore nella query_marca;".mysql_error());
    for($c = 0; $c < mysql_num_rows($query_marca); $c++)
    {
    $a_elenco_marca = mysql_fetch_assoc($query_marca);
    echo"
    <option value='".intval($a_elenco_marca['id_marca'])."'";
    if($id_marca == $a_elenco_marca['id_marca'])
    {
    echo"selected";
    }
    echo">";
    echo"$a_elenco_marca[descr_marca]";
    echo"</option>";
    }
    echo"
    </select>
    </td>
    </tr>
    <tr><td colspan='2' height='8'></td></tr>
    <tr>
    <td valign='top' width='7' height='25'></td>
    <td>
    <input type='text' name='modello' class='text_1'>
    </td>
    </tr>
    <tr>
    <td valign='top' width='7'></td>
    <td>
    <table cellspacing='0' cellpadding='0' width='320' bordercolor='#E11A49' border='0'>
    <tr>
    <td width='246' height='25'></td>
    <td>
    <input type='image' name='avvia' value='cerca' img src='images/avvia_ricerca.png' border='0' /></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </form>
    [/PHP]
    Con questo codice riesco ad avere come risultato la provincia in base alla regione selezionata, e fin qua va tutto bene.
    Questo è la pagina ricerca.php
    [PHP]
    <?php
    if(empty($_POST['regione']) and (empty($_POST['provincia'])) and (empty($_POST['costruttore'])) and (empty($_POST['modello'])))
    {
    echo"usa il modulo per effettuare a ricerca!";
    }
    elseif($_POST['regione'])
    {
    if($_POST['provincia'])
    {
    $provincia = $_POST['provincia'];
    echo"$provincia";
    }
    if(isset($_POST['costruttore']))
    {
    $marca = $_POST['costruttore'];
    echo $marca;
    }
    $regione = $_POST['regione'];
    echo" regione $regione<br>";
    }
    ?>
    [/PHP]
    Adesso vi spiego il problema, quando entro la prima volta e scelgo una regione, ottengo l'id_regione, scegliendo la provincia mi stampa correttamente l'id_provincia, quando invece riscelgo una regione mi da giusto l'id_regione, ma pur ricaricando bene le province mi mantiene l'id_provincia della regione precedente, e questo non va bene.
    Spero di essere stato sufficientemente chiaro.
    Per vedere cosa accade, potete andare su
    xxx.annunciitaliani.it/prova e selezionate campania e una delle sue province, poi scegliete emilia romagna e vedrete che non accade nulla.
    Ciao e grazie


  • ModSenior

    Ciao danny1975
    il link che hai postato genera attualmente un errore SQL.
    Comunque mi sembra di vedere un unico form, per cui $_POST['provincia'] viene sempre inviato ed è normale che i valori non corrispondano se dovresti invece prima scegliere la sola regione.


  • User Attivo

    Ciao Thedarkita, che piacere sentirti, hai qualche soluzione da propormi, è da circa 16 giorni che faccio testa e muro.
    Si genera un errore perchè non è completo, mi sono fermato a regioni e province, se hai gurdato bene, la prima volta va bene, quando la seconda scegli una regione diversa, il campo province si ricarica giusto, ma sulla sx non da il risultato per la regione appena scelta, in cambio però se fai click sul tasto che non si vede sotto al form, da il risultato giusto.
    Ciao


  • ModSenior

    Dovresti fare 1 form per la regione, che invi solo la regione.
    1 form per la provincia che invii la provincia, più un campo hidden che reinvii la regione, o altrimenti te la ricalcoli direttamente lato server.


  • User Attivo

    Intanto grazie, perchè fare piu form, cosi si fa normalmente oppure è un caso perticolare per il mio codice, perchè di tutti i codici visti che fanno queste operazioni hanno tutti un solo form.
    Anche in questo forum ho letto un post e non ci sono 2 form.
    Ti dico questo perchè poi andando avanti avrei un'altra select che contiene le marche dell'auto e un input dove scrivere il modello.
    Anche perchè a dirti la verità non saprei gestire sta cosa che mi hai detto.
    Non dico stasera perchè lo so che è tardi, ma potresti darmi una mano ad uscirne.
    Ciao da danny


  • ModSenior

    Volendo farlo esclusivamente in php dovresti usare 2 form, una soluzione più elegante che eviti di far inviare 2 volte i dati al'utente invece può essere ottenuta mostrando il secondo input relativo alla provincia a seconda della regione scelta utilizzando javascript.


  • User Attivo

    Ciao, opto per la soluzione piu elegante, mi diresti cosa e come cercare, oppure hai qualcosina per le mani :tongueout:

    Ciao da danny


  • User Attivo

    Ciao, una cosa del genere mi piacerebbe come form di ricerca

    xxx.servizi-domicilio.it/cerca.php?pag=1


  • ModSenior

    Quello ad esempio è fatto in javascript, se guardi il codice si vede che ci sono degli input che vengono nascosti/mostrati in base alla regione.
    Dovresti studiare un pò le basi di javascript, non è una cosa particolarmente complessa da realizzare, anzi è piuttosto banale.