Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: query e requery

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180

    query e requery

    Ciao a tutti,
    non so come cercare il mio problema, quindi mi scuso in anticipo se il post esiste già....

    Utilizzo l'accoppiata php/MySQL per leggere i dati da un db .

    Nella pagina di ricerca (in html che invoca quella in php) ho un menu a tendina dove posso selezionare la provincia:
    <select name="prov" class="CellaDati" id="prov">
    <option value="xxx" > </option>
    ....
    ....
    e uno dove posso selezionare il comune:
    <select name="comune" class="CellaDati">
    <option value="xxx" > </option>
    <option value="0000">0000 - Axxx (xxx)</option>
    ...
    ...
    Vorrei che il menu del comune fosse condizionato alla scelta fatta sulla provincia.

    Grazie mille

  2. #2
    Ciao,
    devi ricaricare la pagina o (meglio) parte di essa (cioè il secondo menu a tendina) in base alla scelta effettuata nella prima tendina.
    =======================
    http://www.abidibo.net

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    Grazie, in effetti è logico.

    Ma non so da dove iniziare.
    Mi date un suggerimento o un post di riferimento?

    grazie ancora

  4. #4
    Allora nel primo caso la cosa è semplice, imposti l'ebento onchange del primo select come:
    Codice PHP:
    onchange="location.href='pagina.php?scelta1='+document.getElementById('select_id').value" 
    Poi in pagina.php (quella che contiene le tendine) controlli se è stata settata la variabile scelta1 e in tal caso la utilizzi per fare la query e mostrare la seconda tendina.
    N.B. non utilizzo js base da un sacco di tempo, perchè ormai uso solo piu' librerie, controlla document.getElementById('select_id').value
    dovrebbe funzionare, comunque il senso si capisce. Se usi cosi' allora devi settare l'attributo id del primo select, altrimenti puopi accedere all'elemento del form tramite il suo attributo name, qualcosa tipo
    document.forms['form_name'].elements['element_name'].value

    La seconda strada è piu' performante ed elegante e consiste nel ricaricare solo una porzione di pagina. Si utilizza la tecnica AJAX (Asynchronous JavaScript and XML) per mandare una request "sottobanco" al server che risponde, la risposta viene utilizzata per aggiornare una parte del DOM. vai su google, digita AJAX e trovi un sacco di materiale. Io ti consiglio questa via, è buona cosa imparare ad utoilizzare bene ajax.
    Ciao!
    =======================
    http://www.abidibo.net

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    ...mi sa che ho impostato male la struttura....

    io ho una pagina html contenente un form di scelta, che invoca il file select_sel.php (dove ci sono le query), passandogli i parametri, ed è qui che vorrei i menu condizionati.
    La pagina php viene chiamata solo alla pressione del pulsante "visualizza dati".

    menu_sel.html
    <body>
    <table width="770" border="1" align="center" cellpadding="10" cellspacing="3">
    <tr align="center" valign="middle">
    <td bgcolor="#CCCCCC" class="CellaIntest">Selezione dati</td>
    </tr>
    <form name="elab" method="post" action="./select_sel.php">
    <tr>
    <td align="center" valign="middle" class="CellaDati">

    Seleziona una provincia:
    <select name="prov" class="CellaDati" id="prov">
    <option value="xx" > </option>
    <option value="AR" >AR</option>
    ...
    <option value="SI" >SI</option>
    </select>
    </p>
    </td>
    </tr>
    <tr>
    <td colspan="2" valign="middle" class="CellaDati"> <div align="center">oppure Seleziona
    un Comune:
    <select name="comune" class="CellaDati">
    <option value="xxx" > </option>
    <option value="045001">045001 - Aulla (MS)</option>
    <option value="045002">045002 - Bagnone (MS)</option>
    <option value="045003">045003 - Carrara (MS)</option>
    ....
    <option value="100007">100007 - Vernio (PO)</option>

    </select>
    </div></td>
    </tr>
    <tr align="center" valign="middle">
    <td class="CellaIntest"> <input type="submit" value="Visualizza dati "> </td>
    </tr>
    </form>
    </table>




    </body>

    grazie

  6. #6
    Ma cosa deve fare il file select_sel.php? cioè deve mostrare le scelte fatte dall'utente? oppure deve contenere un altro form? Perchè non riesco a capire cosa intendi per scelte condizionate in una action, solitamente le scelte condizionate sono nel form dove un campo viene popolato a seguito della selezione di un campo precedente.
    Scusa ma non riesco a capire cosa vuoi ottenere
    =======================
    http://www.abidibo.net

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    il file php contiene le query da fare sul db in base ai parametri passategli dal file html (cioè dai valori dei due campi dei menu a tendina):

    <?php

    require 'config.php';
    require 'connect.php';

    $datoinserito = $_POST['prov'];
    $datoinserito2 = $_POST['comune'];


    ....
    $query = "SELECT ....
    FROM .....
    WHERE xxx.cod_comune='$datoinserito2'";

    ....
    poi presenta una tabella con i risultati.

    grazie della pazienza

  8. #8
    Continuo a non capire...
    Allora la action fa delle query sfruttando i parametri inviati dall'utente. OK
    Poi? cosa intendi a questo punto per scelta condizionata?
    =======================
    http://www.abidibo.net

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    180
    Forse non è iun problema di php, ma solo di html.

    Io vorrei scegliere la provincia dal menu a tendina e poter scegliere nell'altro menu solo i comuni relativi a quella provincia selezionata.
    Premendo poi visulaizza dati si dovrebbe richiamare il file php, passando i due parametri.


  10. #10
    Ok, quindi ritorniamo a quanto detto in precedenza:
    Allora nel primo caso la cosa è semplice, imposti l'ebento onchange del primo select come:
    codice PHP:

    onchange="location.href='pagina.php?scelta1='+docu ment.getElementById('select_id').value"

    Poi in pagina.php (quella che contiene le tendine) controlli se è stata settata la variabile scelta1 e in tal caso la utilizzi per fare la query e mostrare la seconda tendina.
    N.B. non utilizzo js base da un sacco di tempo, perchè ormai uso solo piu' librerie, controlla document.getElementById('select_id').value
    dovrebbe funzionare, comunque il senso si capisce. Se usi cosi' allora devi settare l'attributo id del primo select, altrimenti puopi accedere all'elemento del form tramite il suo attributo name, qualcosa tipo
    document.forms['form_name'].elements['element_name'].value

    La seconda strada è piu' performante ed elegante e consiste nel ricaricare solo una porzione di pagina. Si utilizza la tecnica AJAX (Asynchronous JavaScript and XML) per mandare una request "sottobanco" al server che risponde, la risposta viene utilizzata per aggiornare una parte del DOM. vai su google, digita AJAX e trovi un sacco di materiale. Io ti consiglio questa via, è buona cosa imparare ad utoilizzare bene ajax.
    Chiaramente quello che prima era un file html che conteneva il form ora diventa un file php in modo che possa leggere il valore dell variabile $_GET['scelta1'] e stampare la select dei comuni di conseguenza (mi sto riferendo al caso A piu' semplice).
    =======================
    http://www.abidibo.net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.