Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448

    Select concatenate provincia citta con accento e apostrofo

    Ciao ragazzi ho due select PROVINCIA COMUNI concatenate tra loro

    Utilizzo questo codice js

    codice:
    <script type="text/javascript">
    var provinciadb = new Object()
    provinciadb['80'] = [ 
    {value:'6338', text: 'Agrigento'}, 
    {value:'6339', text: 'Alessandria della Rocca'}, 
    ...
    ...
    ];
    
    provinciadb['58'] = [ 
    {value:'4497', text: 'Acqui Terme'}, 
    {value:'4498', text: 'Albera Ligure'}, 
    ...
    ...
    ];
    
    function setCities(chooser) {
    
        var newElem;
    
        var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    
        var cityChooser = chooser.form.elements["comune"];
    
        while (cityChooser.options.length) {
    
            cityChooser.remove(0);
    
        }
    
        var choice = chooser.options[chooser.selectedIndex].value;
    
        var db = provinciadb[choice];
    
        newElem = document.createElement("option");
    
        newElem.text = "Seleziona un comune:";
    
        newElem.value = "";
    
        cityChooser.add(newElem, where);
    
        if (choice != "") {
    
            for (var i = 0; i < db.length; i++) {
    
                newElem = document.createElement("option");
    
                newElem.text = db[i].text;
    
                newElem.value = db[i].value;
    
                cityChooser.add(newElem, where);
    
            }
    
        }
    
    }
    </script>
    Poi vi è questo codice html

    codice:
    <select name="provincia" style="width:185px" onChange="setCities(this)">
            <option value="" selected="selected">Seleziona una Provincia:</option>
       
          <?php
          
          $query = mysql_query("SELECT * FROM province_due ORDER BY nome_provincia ASC");
            while ( $row = @mysql_fetch_array($query) ) 
                {
                $id = $row['id_pro'];
                $provincia = stripslashes($row['nome_provincia']);
                
                echo "<option value=\"$id\">$provincia</option><br/>\n";
                  }
          ?>
            </select>
    
    
     <select name="comune" style="width:185px" id="comune">   
          <option value="" selected="selected">Seleziona comune</option>
          </select>
    Tutto funziona perfettamente se non vi sono caratteri accentati o con l'apostrofo nel database,
    se per esempio invece nel database cè il comune di Sant 'Angelo Muxaro quindiil codice js viene scritto: {value:'6338', text: 'Sant 'Angelo Muxaro'}, lo script non funziona e non viene compilata la select dei comuni.
    Come posso risolvere il problema degli accenti e degli apostrofi? Ho provato con stripslashes ma non funziona.

    Grazie


    viene scritto


  2. #2
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Grazie darkero funziona, adesso però il problema sono i caratteri speciali tipo è à ò che vengono visualizzati nella select in questo modo
    Cambi� invece ci cambiò

    Soluzioni?

  3. #3
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Gia nell'head ho scritto questo
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    Ma i caratteri non vengono modificati non capisco

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, non fai prima ad encodare le stringe come quando si fa un json_encode() da php?
    sarebbe tutto già codificato. Al massimo fai una decodifica sulla visualizzazione.

  5. #5
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Scusa ma che è sto json_encode()?

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ho visto che usi php, pensavo l'array mostrato fosse dinamico e magari potesse provenire da php.
    Con hp dato un array alla funzione json_encode($array); ti restituisce una stringa come object encodato correttamente e non avresti problemi di apici o quant'altro. Sull'utilizzo poi automaticamente verrebbe ricodificato correttamente.
    Se l'array delle località è così statico probabilmente ti conviene encodare i valori aggiungeno funzioni di encoding.

  7. #7
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Ripeto visto che il moderatore ha bloccato la risposta

    Ho un database PROVINCE in cui per esempio vi è scritto in una cella Forl¬ç-Cesena

    Nella pagina php ho:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    Mi recupero i dati dal db: $provincia = stripslashes($row['nome_provincia']);
    stampo con un echo a video e mi da Forl��

    Ok?
    Ultima modifica di ertos; 28-08-2014 a 17:34

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ti faccio un esempio.
    Da php/db ricavi
    Codice PHP:
    $province = array( array("id"=>1"name"=>"Milano"), array("id"=>2"name"=>"l'Aquila") );
    print_r($province);
    $province json_encode($province);
    echo 
    $province
    Vedrai la stringa restituita che è come un object in js(json appunto) con escape corretti dove necessario.

    Ti passi questa nello script/js e sarà tutto già codificato.
    Una volta inviati dati dalla form al massimo fai se necessario un decode ma non dovrebbe servire.

  9. #9
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Spiego meglio nel database ho la tabella provincia e prendo l'esempio di Forlì-Cesena

    Nel db nella cella è scritto cosi: Forl¬ç-Cesena

    Nella pagina php
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    mi recupero il dato dal db: $provincia = stripslashes($row['nome_provincia']);
    metto un echo e mi stampa a video
    {value:"1491", text: "Forl��"},

  10. #10
    Utente di HTML.it L'avatar di ertos
    Registrato dal
    Nov 2005
    Messaggi
    448
    Ho risposto ma il mderatore blocca la discussione senza motivo

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.