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

    Problema di implementazione funzionalità ajax

    Ciao

    ho un problema di implementazione di funzionalità ajax su un sito che sto realizzando.

    Ho bisogno di visualizzare un form per la modifica di un testo nel momento in cui l'utente clicca su di un link. Niente di più semplice. Mi sembra di aver scritto il codice come da manuale (infatti sto usando un manuale) ma il programma non vuole saperne di funzionare.

    Di seguito riporto un estratto della parte di codice che effettua la chiamata alla funzione javascript:

    <?php

    echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml'>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
    <title>Untitled Document</title>
    <link href='style.css' rel='stylesheet' type='text/css' />

    <script type='text/javascript' src='modarea_prova.js'></script>

    </head>
    <body>


    <div>Inserisci</div>
    <div class='area_amministrazione' id='area_modifica'></div>


    </body>
    </html>";

    ?>



    Questa riportata qua sotto è la funzione javascript contenuta nel file "modarea_prova.js" collegata nella head della parte di codice precedente:


    function modifica (){

    var oXHR = new XMLHttpRequest();
    oXHR.open =("get", "prova_ajax_testo.php?sezione=prova", true);
    oXHR.onreadystatechange = function (){

    if(oXHR.readystate == 4){

    var area_modifica=document.getElementById("area_modifi ca");

    area_modifica.innerHTML = oXHR.responseText;



    }

    }

    oXHR.send(null);

    }


    Infine ecco il file che contiene il codice da visualizzare:


    <?php
    echo "

    <form action='engines/engine_".$_GET["sezione"].".php' method='post' class='form_admin'>
    <p class='testo_admin'></p>

    <textarea class='textarea_admin' id='editor1' name='editor1'>".$testo_per_modifica["testo"]."</textarea>


    <input type='submit' value='Inserisci' class='bottone_admin'/>

    </form>



    ";

    }

    ?>



    Qualcuno sa fornirmi la risoluzione del problema?

    Grazie mille in anticipo.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Benvenuto sul forum

    Questa sesione si occupa di javascript lato client, ovvero del codice che viene interpretato dal browser... tutto quello che avviene sul server in altri linguaggi non ci riguarda (e il piu' delle volte e' illeggibile per noi).

    Posta il codice che riceve il browser (in molti: visualizza sorgente|html)
    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

  3. #3
    Grazie per il benvenuto, un saluto anche a voi.

    Ho messo il post in questa sezione perché sul link c'è scritto "Per discutere di JavaScript, AJAX e DHTML", e qui proprio di ajax sto parlando. Credo si tratti del più basilare algoritmo Ajax che si possa immaginare.

    Tornando alla sua risposta: il mio problema è proprio che il browser non riceve niente.

    Mi spiego.

    Io ho un link, TRATTASI DEL LINK: <div>Inserisci</div>, PRESENTE NEL PRIMO FRAMMENTO DI CODICE (HTML DELLA PAGINA).

    Al click su questo link l'elemento con id='area_modifica', SEMPRE PRESENTE NELLA PRIMA PARTE DEL CODICE (HTML DELLA PAGINA), dovrebbe essere riempito con la parte di codice presente nell'ultimo script. ED È PROPRIO QUESTO CHE NON AVVIENE.


    Di seguito, se per voi è meglio, ripropongo il codice in semplice html (senza gli echo iniziali):


    1) HTML DELLA PAGINA:


    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml'>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
    <title>Untitled Document</title>
    <link href='style.css' rel='stylesheet' type='text/css' />

    <script type='text/javascript' src='modarea_prova.js'></script>

    </head>
    <body>


    <div>Inserisci</div>
    <div class='area_amministrazione' id='area_modifica'></div>


    </body>
    </html>


    2) FUNZIONE CONTENUTA NEL FILE "modarea_prova.js" COLLEGATA ALLA HEAD DELLA PAGINA HTML:

    function modifica (){

    var oXHR = new XMLHttpRequest();
    oXHR.open =("get", "prova_ajax_testo.html?sezione=prova", true);
    oXHR.onreadystatechange = function (){

    if(oXHR.readystate == 4){

    var area_modifica=document.getElementById("area_modifi ca");

    area_modifica.innerHTML = oXHR.responseText;

    }

    }

    oXHR.send(null);

    }



    3) CODICE DA VISUALIZZARE CONTENUTO NEL FILE "prova_ajax_testo.html" E PASSATO AL METODO open() DELL'OGGETTO oXHR:


    <form action='engines/engine_".$_GET["sezione"].".php' method='post' class='form_admin'>
    <p class='testo_admin'></p>

    <textarea class='textarea_admin' id='editor1' name='editor1'>".$testo_per_modifica["testo"]."</textarea>


    <input type='submit' value='Inserisci' class='bottone_admin'/>

    </form>



    Grazie.

  4. #4
    Prova a fare copia e incolla di questo esempio che fa esattamente quello che serve a te.

    http://www.w3schools.com/ajax/ajax_x...quest_send.asp

    Clicca il Try it yourself per vedere il codice e provarlo.

    Per seguire quello che succede durante la tua richiesta usa firebug sezione Console, così puoi seguire la tua richiesta ed il risultato della stessa.

  5. #5

    Funziona

    Adesso funziona!

    Grazie per le indicazioni artasdog!

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.