+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Recupero dati con AJAX

  1. #1
    chiabgigi non è in linea Scolaretto
    ciao sono nuovo, mi presento mi chiamo luigi
    innanzitutto premetto che sono un novellino
    sto facendo una form per l'inserimento di dati personali, tipo curriculum
    diciamo che ho costruito delle select, agganciate al database, che danno: città, provincia, ecc, che funzionano benissimo
    però vorrei fare qualcosa di piu specifico e girando ho trovato delle cose utilissime scritte da MASTER 85 ed in particolare:
    PHP 5.x Sviluppare applicazioni web con AJAX
    bene la mia idea era questa:
    utilzzare e mettere in pratica gli insegnamenti dettati da 'Master85' con la variante dell'aggiunta di due campi , cioè

    [provincia] [città] (via) (cap)

    -- provincia: select, lista province
    -- citta: select, lista città (derivata dalla select province)
    -- via: select, (condizionata dalla scelta delle citta con diversi cap), se no campo vuoto per inserimento dati
    -- cap: txt, con il risultato della selezione di città

    io ho un file .sql con i dati per effettuare la cosa in questione

    che ne pensate si puo fare
    gradirei delle info per proseguire
    grazie in anticipo
    gigi

  2. #2
    L'avatar di Master85
    Master85 ora è in linea Moderatore Globale Ultimo blog: Eclipse: Un IDE per PHP e Python
    Ciao Chiabgigi,
    puoi certamente realizzare cio' che desideri, se leggi attentamente l'articolo e studi un po di Javascript non avrai problemi. In caso di chiarimenti su codice ( quello che scriverai ), torna pure a visitarci.

  3. #3
    chiabgigi non è in linea Scolaretto
    ciao Giuseppe, grazie per la risposta
    io non ho capito come si fa ad agganciarsi al database
    cioè io per adesso sono riuscito a fare questo:

    Codice PHP:
    <td span class="tah11">Nome *</span><br><input name="nome"  size="30" id="nome" class="tah11" type="text" tabindex="1"> </td>
    <td span class="tah11">Cognome *</span><br><input name="cognome"  size="40" id="cognome" class="tah11" type="text" tabindex="2"> </td>

    <td span class="tah11">Nato a *</span><br><select name="comune" size="1" class="tah11" id="com_nascita" tabindex="3">
    <?php
    $stringa_query
    ="select * from comuni order by comune asc";
    $elenco_comuni=mysql_query($stringa_query) or die(mysql_error());
    while(
    $row_comuni=mysql_fetch_array($elenco_comuni)){
    $id_comune=$row_comuni[id];
    $comune=$row_comuni[comune];
    echo 
    "<option value=\"$id_comune\">$comune</option>\n";
    }
    ?>
    </select> </td>
     
    <td span class="tah11">Provincia di&nbsp;*</span><br><select name="provincia" size="1" class="tah11" id="nato_provincia" tabindex="4">
    <?php
    $stringa_query
    ="select * from province";
    $elenco_province=mysql_query($stringa_query) or die(mysql_error());
    while(
    $row_province=mysql_fetch_array($elenco_province)){
    $id_provincia=$row_province[id];
    $nome_provincia=$row_province[nome_provincia];
    echo 
    "<option value=\"$id_provincia\">$nome_provincia</option>\n";
    }
    ?>
    </select></td>
    e fin li bene infatti si collega al database e mi restiruisce citta e province

    non so come sfruttare le indicazioni dettate nel tuo articolo per collegarmi al database ed assegnare la colonna della tabella (es citta) alla select giusta

    ciao
    gigi

  4. #4
    L'avatar di chico_
    chico_ non è in linea Topo di biblioteca Ultimo blog: Attacco a Oscommerce
    Quote Originariamente inviato da chiabgigi Visualizza il messaggio
    collegarmi al database ed assegnare la colonna della tabella (es citta) alla select giusta

    ciao
    gigi
    Io non ho capito la domanda

    Ciauz

    Chico
    ℹ️ Leggi di più su chico_ ...

  5. #5
    chiabgigi non è in linea Scolaretto
    @chico
    ti chiedo scusa ma tra i miei tanti difetti c'è anche la confusione nello spiegare

    io intendevo che non so come fare a:

    -- come faccio a collegarmi al database per poi ottenere:

    -- prima select, compare campo "prov_cap"
    -- seconda select, compare campo "comu_cap"
    -- prima txtbox, compare campo topo_cap" ( risultato di "comu_cap"
    -- seconda txtbox, compare campo "capi.cap" (risultato di "comu_cap)

    fino adesso sono riuscito a fare questo:
    Codice PHP:
    <?php
    $connessione
    =mysql_connect("localhost""root""") or die(mysql_error());
    $selezione_db=mysql_select_db("etaimpiantimed") or die(msyql_error());
    ?>



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
        <head>
      <title>Test AJAX</title>
      <script language="javascript" type="text/javascript">
          /*
        * Autore: Master85
        * Codice gratuitamente scaricato da http://www.masterdrive.it
        * Sezione di interesse: Articoli Tecnici >> PHP
        * MasterDrive.it (c) 2006.
        */
          
          function newXMLHttpRequest(){
        var xmlreq = false;
        
        //Controllo il tipo di oggetto XMLHttpRequest da utilizzare
        if(window.XMLHttpRequest){
            //Per browser non Microsoft
            xmlreq = new XMLHttpRequest();
        }else if(window.ActiveXObject){
            //Cerco di creare l'oggetto via MS ActiveX
            try{
          //Nuove versioni per browser IE
          xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e1){ //Errore riscontrato durante la creazione dell'oggetto
          try{
              //Precedenti versioni per browser IE
              xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
          }catch(e2){ //Nuovo errore durante la creazione dell'oggetto
              xmlreq = false;
          }
            }
        }
        //Restituisco l'eventuale oggetto XMLHttpRequest
        return xmlreq;
          }
          
          /*
        * Funzione per la popolazione della Seconda SELECT
        */
          function populateSubSelection(){
        //Recupero i dati da inviare
        var province = document.getElementById("province");
        
        //Creo un nuovo oggetto XMLHTTPRequest
        var req = newXMLHttpRequest();
        
        //Invio la richiesta
        req.open("POST", "data.php", true);
        req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        
        //Invio i dati POST
        req.send("choice=" + province.options[province.selectedIndex].value);
        
        //Gestore dell'evoluzione dello stato dell'oggetto req
        req.onreadystatechange = handleResponse(req, updateSubSelection);
          }
          
          /*
        * Ritorna una funzione per la gestione dello stato dell'oggetto req.
        * Ed infine a stato finale raggiunto, invia la risposta XML alla funzione che dovra' gestire il tutto.
        * reg = Istanza XMLHTTPRequest
        * XMLHandler = nome della funzione a cui passare il risultato XML da gestire
        */
          function handleResponse(req, XMLHandler){
        return function(){
            //Controllo se l'oggetto req ha raggiunto lo stato finale
            if(req.readyState == 4){
          //Inoltre accertiamoci di aver ottenuto il messaggio 200 dal server,
          if (req.status == 200){
              //A questo punto richiamo la funzione che gestira' il risultato XML
              XMLHandler(req.responseXML);
          }else{
              alert("Errore HTTP: " + req.status);
          }
            }
        }
          }
          
          /*
        * Popolo la seconda SELECT
        * XMLResult = Il risultato XML prodotto da handleResponse
        */
          function updateSubSelection(XMLResult){
        //Gestisco il documento XML ricevuto e popolo la seconda SELECT
        var categoria = XMLResult.getElementsByTagName('categoria');
        
        //Recupero la seconda SELECT
        var subSelection = document.getElementById("subSelection");
        
        //Svuoto la secondo SELECT
        for (var i = subSelection.length - 1; i >= 0; i--)
            subSelection.remove(i);
        
        //Scorro gli elementi
        for (var i = 0; i < categoria.length; i++){
            //Recupero i vari elementi singoli
            var item = categoria[i];
            
            //Creo il nuovo elemento OPTION da aggiungere nella seconda SELECT
            var NewOpt = document.createElement('option');
            NewOpt.value = item.getAttribute("value");
            NewOpt.text = item.firstChild.nodeValue;
            
            //Popolo la seconda SELECT
            try{
          subSelection.add(NewOpt, null); //Metodo Standard, non funziona con IE
            }catch(e){
          subSelection.add(NewOpt); // Funziona solo con IE
            function faqualcosa(value){
          getItemCrossBrowser('in').value = value;
          getItemCrossBrowser('put').value = value;
      }
      //Funzione che ottiene l'oggetto DOM attraverso l'id dell'elemento
      function getItemCrossBrowser(id){
          var item;
          if(document.getElementById) item = document.getElementById(id);
          else item = document.all[id];
          return item;
      }    
            }
        }
          }
      </script>
        </head>
        <body>
    <form method="post" action="write.php">
      Provincia:
      <select id="province" onchange="populateSubSelection()">
          <option value="">---</option>
          <option value="A">Menu' A</option>
          <option value="B">Menu' B</option>
          <option value="C">Menu' C</option>
      </select>
      Citta&acute;:
      <select id="subSelection">
          <option value="">---</option>
      </select>
      
      <?php
        
    //Creazione campi
        //Possiamo anche aumentare il numero dei campi
        
    for($i 1$i <= 1$i++){
      
    ?>
      <input type="hidden" name="id_<?php echo $i;?>" value="<?php echo $i;?>">
      <?php echo $i;?>) Via: <input type="text" name="via_<?php echo $i;?>">
      CAP: <input type="text" name="cap_<?php echo $i;?>">
      <hr>
      <?php
        
    }
        
    ?>
        <input type="submit" value="Invia Dati">
        </form>
        </body>
    </html>
    tieni presente che io ho :

     tabella sql così strutturata:
    Codice:
    
    TABLE tab_cap (
    	id_cap INTEGER PRIMARY KEY, --0
    	prov_cap TEXT, --1
    	comu_cap TEXT, --2
    	com2_cap TEXT, --3
    	fraz_cap TEXT, --4
    	fra2_cap TEXT, --5
    	topo_cap TEXT, --6
    	top2_cap TEXT, --7
    	dugt_cap TEXT, --8
    	nciv_cap TEXT, --9
    	capi_cap TEXT  --10 
    
    
    che ti da, giusto per capire il contenuto della tabella:
    Codice:
    
    (NULL, 'AN', 'ANCONA', '', '', '', 'ACHILLE BARILATTI', '', 'VIA', '', '60127');
    (NULL, 'BA', 'BARI', '', '', '', 'GORIZIA', '', 'VICO III', '', '70129');
    (NULL, 'PD', 'PADOVA', '', '', '', 'MANDRIA', '', 'VIA', '', '35142');
    (NULL, 'RM', 'ROMA', '', '', '', 'CALVI', '', 'VIA', '', '00122');
    
    
    cioè ci sono tutte le vie delle città più i paesi della provincia, es:
    Codice:
    
    (NULL, 'PD', 'VEGGIANO', '', '', '', '', '', '', '', '35030');
    
    come puoi notare la tabella sql è strutturata con tanti campi, beh io vorrei che solo determinati campi comparissero, una volta selezionati

    ciao grazie
    gigi

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risolto: [JAVASCRIPT][AJAX][PHP]funzione onchange e ajax
    Da gatto76 nel forum HTML, CSS e JavaScript
    Risposte: 1
    Ultimo Post: 28-03-2012, 19:09
  2. recupero dati da mde
    Da aldora nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 20-08-2008, 14:06
  3. Recupero Dati da DB
    Da Vbnet nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 29-05-2008, 14:07
  4. Recupero dati
    Da ga306 nel forum Microsoft Windows
    Risposte: 3
    Ultimo Post: 05-01-2006, 21:22
  5. recupero dati
    Da nonultimo nel forum Microsoft Windows
    Risposte: 4
    Ultimo Post: 05-07-2005, 02:26