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

    combobox dinamica nome ripetuto

    salve ragazzi ho un problema ho questo script php che popola dinamicamente tramite ajax delle combo con regione provincia comuni..
    tutto funziona solo che la combo relativa ai comuni mi stampa 2 volte il nome dello stesso comune
    ecco una piccola immagine di cosa mi viene visualizzato nelle combo in locale



    questa invece è l'immagine relativa al mio db_comuni



    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 "localhost";
    $dbuser "root";
    $dbpass "pass";
    $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 `id`, `nome` from regioni 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 province WHERE `regione` = '$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 comuni WHERE `provincia` = '$val' ORDER BY `id` ");
    while(list(
    $id$name)=mysql_fetch_array($result)){
         echo 
    "<option value=\"$id\" >$name</option> \n" ;
    }
    }

    echo 
    "</select>\n";

    ?>
    da come ho capito nella combo comuni mi stampa sia id che nome in base al database. come posso far comparire il nome una volta sola?
    premetto che sono alle prime armi.
    spero in un vostro aiuto
    grazie in anticipo

    non so se può servire ma inserisco anche la parte ajax
    Codice PHP:
     <!-- combo fine--3F4A59>

     
    <
    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(srcval) {
    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> 

  2. #2
    prova a fare una select distinct sulla query, dovrebbe togliere i doppioni.

  3. #3
    grazie mille ... Gentilissimo.
    ora funziona...

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.