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

    [ajax-php] problema con formato testo

    Salve, lo posto anche qui, spero che sia il forum giusto. Premesso:
    avete presente l'anteprima di un testo in un blog se il testo è troppo lungo?
    Si mette un link tipo Leggi tutto e poi si ricarica la pagina con tutto il testo.
    Io volevo usare ajax per evitare di ricaricare la pagina.
    Quindi quando clicco sul link viene inviata una query al db che stampa il testo
    in un file che viene poi recuperato e sostituito all'anteprima.
    Funziona tutto tranne che il testo appare con alcuni caratteri sostituiti da
    simpatici quadratini, succede con lettere accentate, virgolette. Siccome è la prima volta che uso ajax non so dove sia la radice
    del problema che probabilmente è banale e non so se sia un problema legato al php o ad ajax, scusatemi.
    Posto il codice del link:
    codice:<div id="contenuto-dinamico">
    <?echo creaIntro($testo, 2500);
    ?>

    Leggi tutto.
    </div>


    Questa è la pagina testo.php:

    codice PHP:
    <?
    include("config.php");
    include("errore.php");
    require("connessione.php");
    require("trovamese.php");
    require("trovamesenum.php");
    require("array_mese.php");
    $codice_post= $_GET['codice'];
    $query= "select * from post where codice = '$codice_post' order by codice desc limit 1";
    $result = mysql_query($query, $db);

    $row = mysql_fetch_array($result);
    $testo = $row['testo'];

    echo $testo;

    ?>


    Spero di essere stato chiaro, se volete lo sarò ancora di più, grazie.

    Nicola

  2. #2
    mi sono dimenticato il codice js:
    codice:
    <script type="text/javascript"><!--//
    
    // funzione di caricamento testo,
    // accetta una stringa contenente
    // il nome di un file da leggere
    function caricaTesto(nomeFile) {
    
      // variabili di funzione
      var
        // assegnazione oggetto XMLHttpRequest
        ajax = assegnaXMLHttpRequest(),
        // assegnazione elemento del documento
        elemento = prendiElementoDaId("contenuto-dinamico"),
        // risultato booleano di funzione
        usaLink = true;
      
      // se l'oggetto XMLHttpRequest non è nullo
      if(ajax) {
        // il link al file non deve essere usato
        usaLink = false;
    
        // impostazione richiesta asincrona in GET
        // del file specificato
        ajax.open("get", nomeFile, true);
    
        // rimozione dell'header "connection" come "keep alive"
        ajax.setRequestHeader("connection", "close");
    
        // impostazione controllo e stato della richiesta
        ajax.onreadystatechange = function() {
          
          // verifica dello stato
          if(ajax.readyState === readyState.COMPLETATO) {
            // verifica della risposta da parte del server
            if(statusText[ajax.status] === "OK")
              // operazione avvenuta con successo
              elemento.innerHTML = ajax.responseText;
            else {
              // errore di caricamento
              elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.
    ";
              elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
            }
          } 
        }
    
        // invio richiesta
        ajax.send(null);
      }
       
      return usaLink;
    } 
    
    //--></script>

  3. #3
    Nessuno sa nulla? Anche un indizio, tipo se è un problema php, js o xml, poi mi arrangio.

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    è un problema di encoding del testo.

    Probabilmente estrai i dati in iso e li butti a js in utf8.

    Prova a a vedere se sistemi dando utf8encode nella pagina php che restituisce i dati e ut8decode in quella che li riceve.

    Io oramai opto per fare tutto in utf8, cosi non sbaglio.

    ciao

  5. #5
    Ciao, grazie di avermi risposto, volevo un chiarimento:
    parli di una funzione specifica del php? perché dopo che la pagina php è stata popolata viene ricevuta in ajax così: ajax.responseText.
    Credo che lì dentro abbia una codifica particolare che viene letta male poi nella pagina di destinazione, cioè nel div.

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Nella pagina che restituisce i risultati al div usa utf8encode per fare l'encoding del testo in utf8.

    Devi verificare come visualizzi la pagina, se in utf8 o in iso (lo vedi dal menu "visualizza" -> codifica di internet explorer).

    Comunque è sicuramente un problema di carachter encoding, non è un argomento banale, ti conviene farti qualche lettura sull'argomento...

    ciao

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.