Jacopo Nuzzi
a- a+

Programmare in Ajax con Php senza usare l'oggetto xmlhttprequest 1

Pagina 1 di 3

Introduzione

Ajax è una delle più grandi scoperte delloscroso anno, ed è subito diventata una parola in voga,come Web 2.0. Admittedly.
Ajax può essere usato per molte cose, ed aumentanotevolemente la velocità delle pagine web.
Ajax è già utilizzato da sito molto popolaricome GMail (di Google), Ta-da List, Flickr. Persino Microsoftha avuto un contatto con Ajax e si sta muovendo per creareapplicazioni web basati appunto su Ajax.

Ma c'è un problema con maggiori implementazionidi Ajax: ha una dipendenza che è l'oggettoXmlHttpRequest. I Browser piùmoderni, come Firefox, hanno inserito nello sviluppo unsupporto per questo oggetto ma i browser più vecchi,come Internet Explorer 6, non hanno il supporto nativo perquesto oggetto.
Fortunatamente, Internet Explorer 6 lo supporta ma èsviluppato come un controllo ActiveX, questo significata chei visitatori ottengono un brutto messaggio di attenzioneriguardo il possibile pericolo dell'ActiveX, o in alcunicasi proprio non lo fa funzionare.
In questo tutorial mostrerò come usare Ajax senzadover usare l'oggetto XmlHttpRequest !

 

Le basi

Se non si può utilizzare l'oggetto XmlHttpRequestdobbiamo trovare qualche altro modo per includere ilcontenuto di altre pagine senza ricorrere ad altri oggetti oaltre cose non standard.
Un ottimo candidato per questo potrebbe essere il tag<script> che è usato per includere filejavascript esterni, ma invece di usare un normale fileJavaScript, indichiamo quel tag ad un file PHP, che produceil Javascript.
Vediamo il codice del file:

PHP

 <?php
$html = '<strong>Questo contenuto viene fuori dal nostro programmino Ajax</strong>';
?>

div = document.getElementById('contentdiv');
div.innerHTML = '<?php echo $html; ?>';



Vediamo di commentare il codice.
Quando questo file viene usato, cerca di impostareinnerHTML di un div che ha come ID'contentdiv'!

Ma c'è un problema: questo file non dovrebbeessere incluso quando le pagine si caricano ma solo quando unbottone viene clickato o da qualche altra azione. Per farequesto dobbiamo perforza aggiungere dinamicamente un nuovoscript con il quale è possibile usare JavaScript.
Ecco come potrebbe essere il codice:

CODE

// Get base url
url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);

function ajax_do (url) {
// Does URL begin with http?
if (url.substring(0, 4) != 'http') {
url = base_url + url;
}

// Create new JS element
var jsel = document.createElement('SCRIPT');
jsel.type = 'text/javascript';
jsel.src = url;

// Append JS element (therefore executing the 'AJAX' call)
document.body.appendChild (jsel);
}