Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    select dinamiche e invio parametri

    ciao a tutti,
    sto realizzando una semplicissima form di registrazione con funzioni di geolocalizzazione (funzione js che dato l'indirizzo restituisce latitudine e longitudine). E' idea carina la combinazione di select dinamiche provincia - comune utilizzando ajax ma nel momento in cui devo passare l'indirizzo alla suddetta funzione js, mi manca il nome del comune (in effetti se visualizzo il sorgente della pagina, non ho una select, con tanto di options.. con i comuni ma solo il div dove ajax andrà ad agire con l'innerHTML.
    Scendo nel dettaglio:
    ho la pagina di registrazione (registrazione.php) all'interno della quale correttamente si collega al db per popolarmi la combo delle province (che vedo dal view source).. sull'onchange di questa combo c'è la funzione js che mi chiama una pagina (comuni.php) fatta nel seguente modo

    codice:
    <?php require_once('../Connections/XXXconnection.php'); ?>
    
    <?php
    
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
    
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
    
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    
    $prov = $_GET['ch'];
    
    mysql_select_db($database_XXXconnection, $XXXconnection);
    $queryComuni = sprintf("SELECT comune FROM comuni WHERE pro_vin_cd = %s",GetSQLValueString($prov, "text"));
    				$result = mysql_query($queryComuni, $XXXconnection) or die(mysql_error());
    				while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    					$nomiComune[] = $row['comune'];
    				}
    ?>
    
    <select name="txt_citta" id="txt_citta" style="width:147px">
    <?php	
            $option = "<option value=\"Comune\">Comune</option> \n";
                for ($i = 0; $i < count($nomiComune); $i++) {
                    $option .= "<option ";
                    $option .= "value=\"$nomiComune[$i]\">$nomiComune[$i]</option> \n";
                }
            echo $option;
    ?>
    </select>
    il tutto funziona alla perfezione (seleziono provincia, in un batter d'occhio mi si aggiorna la combo dei comuni) ma... non è un parametro valido per essere passato... non esiste, visualizzando il sorgente:

    codice:
    .....
    <option value="VR">Verona</option> 
    <option value="VT">Viterbo</option> 
    <option value="VV">Vibo Valentia</option> 
                  </select></td>
    
                    <td nowrap="nowrap" align="left"><label id="obblig_provincia" style="display:none" class="labelmissing"/>*</label></td>
                </tr>
                <tr>
                    <td nowrap="nowrap" align="right"><label class="label">Città</label></td>
                    <td nowrap="nowrap" align="right">
    					<div id="txtResult"><select name="txt_citta" id="txt_citta"><option>Comune</option></select></div>
                    </td>
    il div che viene popolato dalla funzione ajax è txtResult, ma questo è quello che vedo dall'html... dove sono i comuni?? :master:


    grazie a tutti, spero di venirne fuori entro oggi

  2. #2
    Non ho ben capito...

    Riassumendo: la select dei comuni appare corretta, ma il problema e' che se fai l'invio della form non ti passa il dato di la', giusto?

    Forse e' piu' un problema javascript che PHP.

    Cosa intendi con [quote]non esiste, visualizzando il sorgente:[/quote?] ?

    Come fai a visualizzare il sorgente? Spero NON con "visualizza HTML" di IE!!!

    Installa un plugin per il debug quale "firebug" per firefox.

    La cosa piu' probabile comunque e' che la select dei comuni non venga creata nel posto corretto (ad esempio fuori dalla form), o che l'html non sia ben formattato. Col plugin che ti ho segnalato dovresti capirlo.

  3. #3
    ciao, e grazie per l'interessamento.
    si, hai capito bene, navigando la pagina di registrazione seleziono la provincia, seleziono il comune (dalla combo caricata dinamicamente con i comuni della provincia selezionata), ma non passa il value del comune selezionato.
    Per visualizzare il sorgente intendo proprio fare ctrl+U con firefox dalla pagina di registrazione... mi aspettavo di vedere una struttura tipo

    <select>
    <option>....</option>
    .....
    </select>

    invece vedo solo il div.
    Ho installato firebug... ma purtroppo non riesco a venirne fuori. infondo, il div dove andrà creata la select box... è all'interno di una cella della tabella che costituisce la form.. .non capisco proprio

    grazie

  4. #4
    ctrl + U su FF ti fa vedere il codice come e' stato scaricato, ma non come viene modificato attraveso javascript.

    Sei sicuro che i tag siano ben annidiati? Guarda soprattutto il tag form.

    Al limite posta tutto il codice HTML (si', proprio quello che ottieni con ctrl + U) e indicami esattamente dove viene creata la nuova select, in quale DIV

    Poi la console di firebug di permette di vedere il contenuto delle chiamate ajax. Per cui postami questa risposta (le vedi in "console", abilitando nel menu' a dx (Options) l'opzione "Show XMLHttp Requests")

  5. #5
    sai,
    dal menu HTML di firebug, analizzando la tabella che contiene la form, ho visto che ora ho la select cosi come me l'aspettavo premendo ctrl + U, al posto giusto. A questo punto, come posso fare per fare in modo che il parametro relativo al comune selezionato venga passato?

    grazie

    PS: i parametri alla richiesta ajax vengono correttamente passati

  6. #6
    se non vedo un po' di codice non riesco ad aiutarti... mandami cio' che ti ho chiesto prima

  7. #7
    bene,
    la request è la seguente:
    GET http://localhost/test/phpUtils/comun...00615248804903

    i 3 tabs:

    -params
    ch AO
    sid 0.4300615248804903

    -headers
    codice:
    Response Headers
    Date	Thu, 07 Feb 2008 09:08:09 GMT
    Server	Apache/2.2.8 (Win32) PHP/5.2.5
    X-Powered-By	PHP/5.2.5
    Content-Length	5633
    Keep-Alive	timeout=5, max=100
    Connection	Keep-Alive
    Content-Type	text/html
    Request Headers
    Host	localhost
    User-Agent	Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
    Accept	text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    Accept-Language	it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip,deflate
    Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive	300
    Connection	keep-alive
    Referer	http://localhost/test/registrazione.php
    Cookie	PHPSESSID=cb898336d8fb33efe650aa1420b16767

    -response
    codice:
    <select name="txt_citta" id="txt_citta" style="width:147px">
    
    <option value="Comune">Comune</option> 
    
    <option value="Allein">Allein</option> 
    
    <option value="Antagnod">Antagnod</option> 
    
    <option value="Antey Saint Andr�">Antey Saint Andr�</option> 
    
    <option value="Aosta">Aosta</option> 
    
    <option value="Arcesaz">Arcesaz</option> 
    
    <option value="Arnad">Arnad</option> 
    
    <option value="Arpuilles - Rione di Aosta">Arpuilles - Rione di Aosta</option> 
    
    <option value="Arvier">Arvier</option> 
    
    <option value="Avise">Avise</option> 
    
    <option value="Ayas">Ayas</option> 
    
    <option value="Aymavilles">Aymavilles</option> 
    
    <option value="Bard">Bard</option> 
    
    <option value="Barme">Barme</option> 
    
    <option value="Bionaz">Bionaz</option> 
    
    <option value="Blavy Nus">Blavy Nus</option> 
    
    ..... tutti gli altri comuni
    mentre il pezzo di ctrl+U interessato è il seguente:
    codice:
    <tr>
                    <td nowrap="nowrap" align="right"><label class="label">Città</label></td>
                    <td nowrap="nowrap" align="right">
    					<div id="txtResult"><select name="txt_citta" id="txt_citta"><option>Comune</option></select></div>
                    </td>
    
                    <td nowrap="nowrap" align="left"><label id="obblig_citta" style="display:none" class="labelmissing"/>*</label></td>
                </tr>
    è la riga della tabella nella quale visualizzo la combo dei comuni... il div interessato dall'inner html è txtResult

    grazie

  8. #8
    ok, ma la cosa piu' importante e' dove apri e chiudi la form.

    Devi assicurarti che non fai cose del tipo

    <form> <table> ... </form></table>

    perche' cose del genere possono non dare errori nel file HTML originario ma possono incasinare gli oggetti creati da javascript

  9. #9
    "purtroppo" è tutto corretto

    <form> <table> .... </table></form>

    davvero sono ste cose che mi smontano quando sembra che va tutto bene e invece...

  10. #10
    Strano in effetti.

    a questo punto forse un link sarebbe comodo se tu potessi

    perche' bisogna dare un occhio anche a javascript.

    Nel frattempo riguardo il thread per vedere se mi e' sfuggito qualcosa

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 © 2024 vBulletin Solutions, Inc. All rights reserved.