Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    combobox dinamiche da db

    Salve ragazzi...
    ho bisogno del vostro auiuto...
    premetto che di php so ben poco...
    vi pongo il mio problema ...
    in una pagina o 3 combobox che vengono caricate dinamicamente da un db mysql contenente
    regioni provincie comuni

    il problema sta che la prima combox riesco a caricarla tranquillamnete in questo modo

    Codice PHP:
    <select name="REGIONI">   onchange="java-script:location.href='index.php?id_regione=' + this.options[this.options.selectedIndex].value">
    <?php
    include("config.inc.php");
    $query "SELECT regione FROM regioni";
    $res mysql_query($query);
    while (list(
    $regione) = mysql_fetch_array($res)) { ?>
     <option value="<?php print $regione ?>"> <?php print $regione ?></option><?php
    ?>
    </select>



    </select>
    adesso quella delle provincie comuni come faccio a riempirla da db attraverso la selezione della prima...
    ho visto i vari esempi presenti sul forum pa nessuno spiega come fare il riempimento tramite db apparte un es dove c'è anche l'uso di ajax che per me è arabo...

    diciamo che la parte di php che serve nel mio sito è solo questa visto che il resto è fatto in flash per questo vi chiedo una mano...

    il mio risultato finale che vorrei ottenere è quello di poter fare una query al db ed aggiungere dati nel comune selezionato nulla di più

    vi prego fatemi un esempio ne ho davvero un bisogno urgente
    ps: in confi.inc.php ci sono i parametri di accesso al db
    grazie mille

  2. #2

  3. #3
    se vuoi riempire la seconda select solo con le provincie della regione selezionata, senza ricaricare la pagina, devi necessariamente usare ajax, che a sua volta richiamerà un file php che ti esegue la query sulla tabella (per ex. province) e impostare il WHERE della select ad ex: WHERE regionr = 'lazio';

    per far si che appena hai selezionato la regione ti vengano caricate le province nelll'altra select, devi chiamare la funzione javascript che a sua volta chiama il file php attraverso l'evento onChange applicato alle select delle regioni..spero di essere stato kiaro..se non lo sono stato è xke è un pokino tardi

  4. #4
    salve ragazzi prima di tutto volevo ringraziarvi di cuore per le risposte immediate...

    ho seguito l'esempio postato da rickystra solo che non mi permette di scaricare i db nell esmpio e ho dovuto usarne un altro anche perchè a me servono le regioni e non la tabellla cap

    ho modificato il codice in questo modo

    Codice 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>
      <title>Hello!</title>
    </head>

    <body>

    <?


    $data
    =$_GET['data'];
    $val=$_GET['val'];

    //set database
    $dbhost "localhost";
    $dbuser "root";
    $dbpass "hd770";
    $dbname    "db_comuni";
    mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");

    if (
    $data=='regione') {  // first dropdown
      
    echo "<select class='text' name='regione' onChange=\"dochange('comune', this.value)\">\n";
    echo 
    "<option value='0'>Scegli la regione</option>\n";
    $result=mysql_db_query($dbname,"select `codice_istat`, `regione` from regioni order by `codice_istat`");
    while(list(
    $codice_istat$regione)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$codice_istat\" >$regione</option> \n" ;
    }
    } else if (
    $data=='provincia') { // second dropdown
      
    echo "<select class='text' name='provincia' onChange=\"dochange('comune', this.value)\">\n";
    echo 
    "<option value='0'>scegli la provincia</option>\n";
    $result=mysql_db_query($dbname,"SELECT `sigla`,`regione`, `provincia` FROM province WHERE `regione` = '$val' ORDER BY `regione` ");
    while(list(
    $sigla$provincia)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$sigla\" >$provincia</option> \n" ;
    }
    } else if (
    $data=='comune') {
    echo 
    "<select class='text' name='comune' >\n";
    // echo "<option value='0'></option>\n";
        
    $result=mysql_db_query($dbname,"SELECT `provincia`, `comune` FROM comuni WHERE `provincia` = '$val' ORDER BY `comune` ");
    while(list(
    $provincia$comune)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$provincia\" >$comune</option> \n" ;
    }
    }

    echo 
    "</select>\n";

    ?>


    </body>

    </html>
    solo che le label non mi funzionna....
    mi spiego la composizione del mio db_comuni

    tabella "regioni" formato da colonna regione(contiene il nome delle regioni es lazio campania...)
    e poi contiene un colonna codice_istat per ogni regione es(01,02,03)

    poi ho una tabella "provincie" (con una colonna provincia che contiene i nomi di tutte le provincie una colonna regione che contiente gli indentificativi per collegare la provincia alla regione con i codice_istat es (01,02,03,01,01) e poi una colonna sigla che serve a collegare provincia con comuni

    e poi una tabella comuni con una colonna comuni che contiene i nomi e una provincia che contiene le sigle delle provincie per collegamenti con provincia

    adesso posto anche l'url del db per chi non avesse capito

    http://www.redfoxy.it/home/67.html

    non mi funzionano le label con le modifiche che ho fatto... secondo voi cosa sbaglio?

    IL PHP ORIGINALE ERA IL SEGUENTE
    Codice PHP:
    <?
    //set IE read from page only not read from cache
    header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header ("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
    header ("Cache-Control: no-cache, must-revalidate");
    header ("Pragma: no-cache");

    header("content-type: application/x-javascript; charset=tis-620");

    $data=$_GET['data'];
    $val=$_GET['val'];

    //set database
    $dbhost "";
    $dbuser "";
    $dbpass "";
    $dbname    "";
    mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");

    if (
    $data=='provincia') {  // first dropdown
      
    echo "<select class='text' name='provincia' onChange=\"dochange('comune', this.value)\">\n";
    echo 
    "<option value='0'>Scegli la provincia</option>\n";
    $result=mysql_db_query($dbname,"select `id`, `nome` from province order by `id`");
    while(list(
    $id$name)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$id\" >$name</option> \n" ;
    }
    } else if (
    $data=='comune') { // second dropdown
      
    echo "<select class='text' name='comune' onChange=\"dochange('cap', this.value)\">\n";
    echo 
    "<option value='0'>scegli il comune</option>\n";                 
    $result=mysql_db_query($dbname,"SELECT `id`, `nome` FROM comuni WHERE `id_province` = '$val' ORDER BY `id` ");
    while(list(
    $id$name)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$id\" >$name</option> \n" ;
    }
    } else if (
    $data=='cap') {
    echo 
    "<select class='text' name='cap' >\n";
    // echo "<option value='0'></option>\n";                   
        
    $result=mysql_db_query($dbname,"SELECT `id`, `nome` FROM cap WHERE `id_comuni` = '$val' ORDER BY `id` ");
    while(list(
    $id$name)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$id\" >$name</option> \n" ;
    }
    }

    echo 
    "</select>\n";

    ?>
    vi prego ragazzi datemi una mano anche perchè girovagando sulla rete ho notato che è un problema abbastanza frequente quindi sarebbe comondo averlo risolto per tutti

  5. #5
    http://www.webstart.altervista.org/d.../database.html

    Qui i file sql per il db.
    Guarda le tabelle e capirai perchè il tuo codice non funziona.
    Molto probabilmente le mie tabelle non sono perfette strutturalmente, ma è la soluzione + veloce che avevo trovato per fare funzionare quel codice che a mio tempo ho trovato in giro per la rete e riadattato.

    Ciao

  6. #6
    grazie adeso provo subito... grazie infinitamente ... dopo ti faccio sapere come va

  7. #7
    adesso funziona cerco di capire il db per le modifiche ... grazie mille

  8. #8
    ragazzi io proprio non ci riesco se c'è qualcuno che può provare questo script e dirmi perchè non va io sto impazzendo ormai
    vi posto tutto ciò di cui avete bisogno basta solo provare

    scaricatevi questo db
    http://www.redfoxy.it/home/67.html

    poi create 2 file php
    uno italia.php con il seguente codice da me modificato al minimo preso dal link postato da rychistra
    Codice 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>
      <title>Hello!</title>
    </head>

    <body>

    <?php

    //set IE read from page only not read from cache
    //header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    //header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    //header ("Cache-Control: no-cache, must-revalidate");
    //header ("Pragma: no-cache");

    //header("content-type: application/x-javascript; charset=tis-620");

    $data=$_GET['data'];
    $val=$_GET['val'];

    //set database
    $dbhost "localhost";
    $dbuser "root";
    $dbpass "cd00000";
    $dbname    "db_comuni";
    mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");

    if (
    $data=='provincia') {  // first dropdown
      
    echo "<select class='text' name='provincia' onChange=\"dochange('comune', this.value)\">\n";
    echo 
    "<option value='0'>Scegli la provincia</option>\n";
    $result=mysql_db_query($dbname,"select `codice_istat`, `regione` from regioni order by `regione`");
    while(list(
    $codice_istat$regione)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$codice_istat\" >$regione</option> \n" ;
    }
    } else if (
    $data=='comune') { // second dropdown
      
    echo "<select class='text' name='comune' onChange=\"dochange('cap', this.value)\">\n";
    echo 
    "<option value='0'>scegli il comune</option>\n";
    $result=mysql_db_query($dbname,"SELECT `sigla`, `provincia` FROM provincie WHERE `regione` = '$val' ORDER BY `sigla` ");
    while(list(
    $sigla$provincia)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$sigla\" >$provincia</option> \n" ;
    }
    } else if (
    $data=='cap') {
    echo 
    "<select class='text' name='cap' >\n";
    // echo "<option value='0'></option>\n";
        
    $result=mysql_db_query($dbname,"SELECT `cap`, `comune` FROM comuni WHERE `provincia` = '$val' ORDER BY `comune` ");
    while(list(
    $cap$comune)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$cap\" >$comune</option> \n" ;
    }
    }

    echo 
    "</select>\n";

    ?>

    </body>

    </html>
    e questo file con nome italia_dropdown.php
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Link Interessanti</title>
    <style type="text/css">
    <!--
    .scelta {
    width: 250px;
    }
    -->
    </style>
    </head>
    <body>

    <?
    echo "<table>";
    echo 
    "<form name=sel action='clienti/form_esercizi.php' method='post' >
    "
    ;
    echo 
    "<tr><td>Provincia</td><td><font id=provincia><select name='provincia' class='scelta'>";
    echo 
    "<option value='0'>============</option>" ;
    echo 
    "</select></font></td></tr>";

    echo 
    "<tr><td>Comune</td><td><font id=comune><select name='comune' class='scelta'>";
    echo 
    "<option value='0'>=== none ===</option>" ;
    echo 
    "</select></font></td></tr>";

    echo 
    "<tr><td>Cap</td><td><font id=cap><select name='cap' class='scelta'>";
    echo 
    "<option value='0'>=== none ===</option>" ;
    echo 
    "</select></font></td></tr>";
    ?>
    <button type="submit"></button>
    <?
    echo "</form>";
    echo 
    "</table>";

    ?>


    <script language=Javascript>
    function Inint_AJAX() {
    try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
    try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
    try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
    alert("XMLHttpRequest not supported");
    return null;
    };

    function dochange(src, val) {
    var req = Inint_AJAX();
    req.onreadystatechange = function () {
    if (req.readyState==4) {
    if (req.status==200) {
    document.getElementById(src).innerHTML=req.responseText; //retuen value
    }
    }
    };
    req.open("GET", "italia.php?data="+src+"&val="+val); //make connection
    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
    req.send(null); //send value
    }

    window.onLoad=dochange('provincia', -1); // value in first dropdown
    </script>
    </body>
    </html>
    questo non serve modificarlo

    fate partire questo ultimo file sul browser e vedrete che carica la regione ma non la provincia...
    perchè sto impazzendo ... ragazzi vi prego aiutatemi per favore

  9. #9
    up
    rickystra puoi aiutarmi per favore?

  10. #10
    ho risoltoooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooooooo ooooooooooooooooooooooooooo....
    per chiunque fosse interessato il problema sta del fatto che nelle select non bisogna cambiare id, nome ma bisogna rinominare il db ... in id e nome ciao

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.