Aggiorno quanto scritto prima:
questo è il codice della mia pagina index
codice:
<html>
<head>
<title>Prova Ajax</title>
<script type="text/javascript" src="lib/prototype.js"></script>
<script type="text/javascript" src="src/scriptaculous.js"></script>
<link type="text/css" rel="stylesheet" href="style.css" />
<script type="text/javascript">
var settings = {
containerId: 'container',
statusId: 'status',
processUrl: 'processor.php',
statusSuccessColor: '#99ff99',
statusErrorColor: '#ff9999'
}
</script>
<script type="text/javascript" src="js/script.js"></script>
</head>
<body onload="init();">
<div id="status-container">
Stato:
<span id="status"> (nessun update)</span>
</div>
<div id="content">
<h1>Gestire menù</h1>
<div id="container">
(caricamento)
</div>
</div>
</body>
</html>
e questo è il codice della mia pagina javascript script.js
codice:
function init() {
$(settings.statusId).defaultContent = $(settings.statusId).innerHTML;
loadItems();
}
function setStatus(msg) {
var isError = typeof arguments[1] == 'boolean' && arguments[1];
var status = $(settings.statusId);
var options = {
startcolor : isError ? settings.statusErrorColor : settings.statusSuccessColor,
aferFinish: function() {
this.update(this.defaultContent);
}.bind(status)
};
status.update(msg);
new Effect.Highlight(status, options);
}
function loadItems() {
var options = {
method: 'post',
parameters: 'action=load',
onSuccess: loadItemSuccess(transport),
onFailure: loadItemFailure(transport)
};
setStatus('Caricamento voci');
new Ajax.Request(settings.processUrl, options);
}
function loadItemFailure () {
setStatus('Errore caricamento voci', true);
}
function loadItemSuccess(transport) {
var xml = transport.responseXML;
var items = $A(xml.documentElement.getElementsByTagName('item'));
if (items.size() == 0) {
setStatus('Nessuna voce trovata', true);
return;
}
var listItems = $A();
items.each(function(s) {
var elt = Builder.node('li', {id : 'item_'+s.getAttribute('id') }, s.getAttribute('title'));
listItems.push(elt);
});
var list = Builder.node('ul', { className: 'sortable', id : 'items' }, listItems);
var container = $(settings.containerId);
container.update();
container.appendChild(list);
Sortable.create(list, {onUpdate: saveItemOrder.bind(list)});
}
function saveItemOder() {
var options = {
method: 'post',
parameters: 'action=save&' + Sortable.serialize(this),
onSuccess: saveItemOrderSuccess,
onFailure: saveItemOrderFailure
};
new Ajax.Request(settings.processUrl, options);
}
function saveItemOrderFailure(transport) {
setStatus('Errore salvataggio ordine', true);
}
function saveItemOrderSuccess(transport) {
if (transport.responseTest != '1')
return saveItemOrderFailure(transport);
setStatus('Ordine salvato');
}
Ora l'errore che dà è sulla variabile transport che secondo lui non è definita...