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

    Problema con accenti funzione Ajax chiamata da jQuery

    Ho questa funzione che mi richiama le provincie in una <select> di HTML tramite una chiamata Ajax in base alla regione che viene scelta in un'altra <select> dall'utente:
    codice:
    $('#regione').change(function(){
        var elem = $(this).val();
        $.ajax({
            type: 'POST',
            url: 'ajax/select.php',
            dataType: 'json',
            data: {'regione':elem},
            success: function(res){
                $('#provincia option').each(function(){$(this).remove()});
                $('#provincia').append('<option selected="selected">Seleziona...</option>');
                $.each(res, function(i, e){
                    $('#provincia').append('<option value="' + e.sigla + '">' + e.nome + '</option>');
                });
            }
        });
    });
    dove e.sigla è la sigla della provincia ed e.nome è il nome della provincia.

    Il tutto funziona, ho solo il problema con "Forlì-Cesena" perchè sembra che JS non interpreti il carattere con l'accento ed infatti mi mostra null al posto del nome della provincia.
    Il mio database di supporto è MySQL e sia la tabella delle provincie e quella delle regioni sono impostate con CharSet Latin1 e Collate latin1_general_ci quindi dovrebbero supportare i caratteri speciali.

    Qualche idea?

    (Lo so, qualcuno potrebbe dirmi: "aspetta qualche giorno che tanto fra poco le province non ci saranno più..." )


  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    In javascript se scrivi a mano i caratteri strani devi usare l'escape \u più la sigla unicode. Es.:

    codice:
    alert("La vita \u00E8 bella"); // "La vita è bella"
    Qui hai un convertitore online: http://0xcc.net/jsescape/

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Avevo provato anche io con htmlentities() come suggerito da quel thred lì che già avevo visto, dato che aveva il mio stesso problema, ma non mi funzionava per questo chiedevo aiuto...

    Ad ogni modo a differenza dell'altro esempio io ho risolto con utf8_encode()

    Codice PHP:
    public function getProvince($cod_regione){
        
    $query "SELECT * FROM province WHERE cod_regione = '".$cod_regione."' ORDER BY provincia";
        if(
    $result parent::query($query)){
            if(
    $result->num_rows 0){
                while(
    $row $result->fetch_array()){
                    
    $province[] = array(
                                        
    'codice' => $row['cod_provincia'],
                                        
    'nome' => utf8_encode($row['provincia']),
                                        
    'sigla' => $row['sigla']
                                        );
                }
                return 
    $province;
            }
        }


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.