Visualizzazione dei risultati da 1 a 8 su 8

Discussione: XMLHttpRequest

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6

    XMLHttpRequest

    Ho una pagina_1.php, in essa esiste una funzione javascript che richiama ogni 10 secondi una seconda pagina_2.php web. Questa seconda pagina web restituisce soltanto un numero 0 oppure 1.

    In base al response di 0 oppure 1 viene richiamata una terza pagina_3.php il cui contenuto è solo una tabella con righe e colonne.

    Questo avviene in background.

    Nella pagina_1.php esiste la riga HTML <div id="allTable"></div> che visualizza la tabella della pagina_3.php; nell'eventualità venisse inserito o eliminato un record la tabella viene aggiornata correttamente senza il refresh page.

    In tutto questo processo mi trovo di fronte ad una imperfezione, e cioè mentre in una cella della tabella mi aspetto di ricevere
    codice:
    <div id="1"></div>
    ho riscontrato che mi viene restituito
    codice:
    <div id="1"/>
    Ovviamente il risultato non è quello previsto.

    Non riesco ad andare avanti. Se vi servono altre informazioni chiedete. Non posto codice perchè sarebbe un pò troppo complesso.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto.
    Ti ricordo che gli ID non devono essere numeri _1 = si 1 = no per quanto concerne al problema ippotizzo che il div venga generato dinamicamente col php e se non viene chiuso sempre dal php il browser interpreta la chiusura a modo suo
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6
    Devo dedurre che il codice php è corretto perchè se richiamo direttamente la pagina_3.php che restituisce la tabella in questa non esiste errore. Funziona perfettamente.

    il php comunque viene generato così (ho seguito il consiglio di mettere un undrescape)
    codice:
    print("document.write(\"<div id=\\\"_{$id_number}\\\"></div>\");");
    Solo che tutto questo codice acquisito nella pagina_1.php attraverso
    codice:
    document.getElementById("allTable").innerHTML=xmlhttp.responseText
    non mi viene recuperato correttamente.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Usare un print php e write js lo trovo abbastanza contorto, per il response va capito dov'è l'errore per esperienza di norma in queste situazioni di fusioni php/js gli errori risiedo nel php, in questi casi io consiglio prima fai funzionare il php (senza js/ajax) quando il tutto è corretto aggiungi js e ajax
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6
    Ti ringrazio per la disponibilità. Effettivamente si, è strano vedere il print PHP che stampa un write js. Era una mia curiosità in passato e vedendo che non da problemi ho continuato a mantenere questo metodo.

    Ora faccio delle prove magari ripulisco tutto da codice superfluo e magari se posso tra qualche giorno vorrei inserire gli url delle pagine in questione. In questo modo potrebbe essere utile vedere direttamente via web le pagine e cercare di fare maggiore chiarezza.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6
    Mi trovo nella condizione in cui il tutto funziona tranquillamente. Non ci sono problemi ad eccezione di una cella.
    codice:
    <td> <div id="_0"></div> </td>
    Questa cella visualizza un numero che al trascorrere dei 60 secondi incrementa il suo valore di 1 cosi da diventare 2 dopo 2 minuti 3 dopo 3 minuti e cosi via. Tutto OK. Anche questa pagina_3.php va bene tutto non ci sono errori.

    In definitiva richiamando la pagina_3.php direttamente il risultato è perfetto. Nessun problema.
    Invece richiamando la pagina_1.php (la quale visualizza la tabella della pagina_3.php) ebbene in questa pagina_1.php la cella in questione non mi da il risultato che mi aspetto.

    il codice HTML nella pagina_1.php che richiama la pagina_3.php è semplicemente
    codice:
    <div id="allTable"></div>
    Nella funzione JS tutto il codice HTML lo recupero in questo modo
    codice:
    var newTable = xmlhttp.responseText;
    document.getElementById("allTable").innerHTML=newTable;
    La tabella quindi viene visualizzata e si aggiorna senza il refresh page solo che la cella che contiene i minuti mi crea l'imperfezione.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    6
    Un inizio di soluzione che vede il corretto funzionamento totale con il browser Mozilla Firefox, Google Chrome. Mentre IE dovrò ancora risolvere.

    Semplicemente ho sostituito questa riga
    codice:
    <td><div id="_0"></div></td>
    in quest'altra
    codice:
    <td id="_0">8</td>
    Così adesso magari cerco qualche cosa per utilizzare document.all

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma le spiegazioni non sono il tuo "punto" forte, prova con un link alla pagina pubblica forse si capisce meglio
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.