PDA

View Full Version : [PHP - AJAX] Passaggio asincrono di array


Pappe
12-01-2011, 18:11
Sto cercando di capire un po' come funziona ajax e volevo visualizzare i risultati di una query in questo modo.

ho fatto una pagina php che "simula" la query e crea l'array che deve essere passato al javascript:

$start = $_GET['start'];

for($i=0;$i<$start;$i++)
$array[$i]=$i;

$enc = json_encode($array);
echo $enc;


mentre questa è la parte javascript+html

<script type="text/javascript">
function ajaxRequest(url, method, data, asynch, responseHandler) {
var request = new XMLHttpRequest();
request.open(method, url, asynch);

if (method == "POST")
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status == 200) {
responseHandler(request.responseText);
}
}
};

request.send(data);

var div = document.getElementById("div1");
div.innerHTML = data;
}

function getArray(start) {
ajaxRequest('prova.php?start=', 'GET', start, true, showArray);
}
function showArray(response) {
var div = document.getElementById("div2");
div.innerHTML = response;
}
</script>



<div id="div1"></div>
<div id="div2"></div>

<form name="page">
<input type="button" value="Go" onClick="getArray(4)">
</form>


il contenuti di div1 è (ovviamente) sempre giusto, mentre quello di div2 (il mio output) è sempre "null".

qualche idea?

Grazie :D

Shinnok.Exor
13-01-2011, 01:47
Il codice JS sembra giusto.

Se provi a chiamare l'url senza AJAX, ti visualizza l'array JSON ? oppure ti scrive null ?