Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716

    [Ajax->PHP / PHP->Ajax] problema con decodeURIComponent... òàèù

    ciao!
    in una pagina uso l'ajax per passare dei get a un'altra pagina php
    Codice PHP:
    function Ricerca(xdiv){
        var 
    Search document.getElementById('TxtSrc').value;
        var 
    Math.random();
        
    myRequest CreateXmlHttpReq(function() {myHandler(div)});
        
    myRequest.open("GET","pagina.php?cosa="+encodeURIComponent(x)+"&r="+encodeURIComponent(r)+"&ricerca="+encodeURIComponent(Search));
        
    myRequest.send(null);

    e fin qui tutto bene, la mia pagina php mi riceve il get già bello che codificato (lo fà in automatico il php) e non ci sono problemi.

    la tragedia è quando ricevo il testo da stampare, decodeURIComponent mi dà l'errore malformed URI sequence..
    Codice PHP:
    function myHandler(div) {
        if (
    myRequest.readyState == && myRequest.status == 200) {
            
    document.getElementById(div);
            
    e.innerHTML decodeURIComponent(myRequest.responseText);
        }else{
            
    document.getElementById(div);
            
    e.innerHTML 'Caricamento Dati...';
        }

    onde està el problema?!?

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  2. #2
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  3. #3
    sei sicuro in dinviare con rawurlencode ? ... da server a JS non c'è bisogno di encodare di solito ... al limite scrivi il tutto con utf8_encode perima di inviarglielo.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    Originariamente inviato da andr3a
    sei sicuro in dinviare con rawurlencode ? ... da server a JS non c'è bisogno di encodare di solito ... al limite scrivi il tutto con utf8_encode perima di inviarglielo.
    ehm...non ho mica capito tanto bene...allora io ho lo script ajax:
    Codice PHP:
    function myHandler(div) {
        if (
    myRequest.readyState == && myRequest.status == 200) {
            
    document.getElementById(div);
            
    e.innerHTML decodeURIComponent(myRequest.responseText);
        }else{
            
    document.getElementById(div);
            
    e.innerHTML 'Caricamento Dati...';
        }
    }

    //[...tralascio il CreateXmlHttpReq...]
     
    function Ricerca(xdiv){
        var 
    Search document.getElementById('TxtSrc').value;
        var 
    Math.random();
        
    myRequest CreateXmlHttpReq(function() {myHandler(div)});
        
    myRequest.open("GET","pagina.php?cosa="+encodeURIComponent(x)+"&r="+encodeURIComponent(r)+"&ricerca="+encodeURIComponent(Search));
        
    myRequest.send(null);

    e nella pagina php prendo i dati così:
    Codice PHP:
    $ricerca=$_GET["ricerca"];
    //[..scartiamo le query estrazione a db che quelle funzionano...]
    //esempio di risultato da stampare
    $result="<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
    <td>Pippo</td>
    <td>Verdi</td>
    </tr>
    <tr>
    <td>Mario</td>
    <td>Bianchi</td>
    </tr>
    </table>"
    ;
    echo 
    $result;
    //echo utf8_encode($result); 
    in quel echo finale ho provato a mettere anche 'echo utf8_encode($result);' ma niente, nella pagina con la funzione ajax myHandler mi dà sempre errore 'malformed URI sequence' qui:
    e.innerHTML = decodeURIComponent(myRequest.responseText);

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  5. #5
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    fermi tutti ci sono saltato fuori
    Codice PHP:
    $result="<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
    <td>Pippo</td>
    <td>Verdi</td>
    </tr>
    <tr>
    <td>Mario</td>
    <td>Bianchi</td>
    </tr>
    </table>"
    ;
    echo 
    utf8_encode($result);

    /*[...]*/

    function myHandler(div) {
        if (
    myRequest.readyState == && myRequest.status == 200) {
            
    document.getElementById(div);
            
    e.innerHTML myRequest.responseText;//!!!
        
    }else{
            
    document.getElementById(div);
            
    e.innerHTML 'Caricamento Dati...';
        }

    ma senza decodeURIComponent nella ricezione da PHP ad Ajax, potrei avere problemi?
    l'invio da ajax a php invece lo lascio con encodeURIComponent

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  6. #6
    Originariamente inviato da thitan
    ma senza decodeURIComponent nella ricezione da PHP ad Ajax, potrei avere problemi?
    no, appunto ... dal server al JS non serve usare decodeURIComponent nel JS a meno che tu non invii tramite rawurlencode


    echo rawurlencode(utf8_encode($risultato));


    ma è superfluo, con
    echo utf8_encode($risultato);
    il responseText sarà già valido ... senza bisogno di usare decodeURIComponent, proprio perchè non gli invii una stringa encodata per uri, proprio perchè non usi rawurlencode
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    Originariamente inviato da andr3a
    no, appunto ... dal server al JS non serve usare decodeURIComponent nel JS a meno che tu non invii tramite rawurlencode


    echo rawurlencode(utf8_encode($risultato));


    ma è superfluo, con
    echo utf8_encode($risultato);
    il responseText sarà già valido ... senza bisogno di usare decodeURIComponent, proprio perchè non gli invii una stringa encodata per uri, proprio perchè non usi rawurlencode

    ok ottimo grazie per l'aiuto

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

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.