Salve
Ho un problema con l'effetto FadeTo della libreria di Rico. Ho questa pagina php che crea un menù, e se viene cliccata una voce del menù cambia il contenuto del div "contenuto" con un effetto di fade.
Codice PHP:
<html>
<head>
<title>AJAX VS PHP RICO</title>
</head>
<body>
<table>
<tr>
<td>
<?php
$menu = array(menu0, menu1, menu2, menu3, menu4);
for($i = 0; $i<=4; $i++){
echo '<a href="javascript:menu(' . $i . ', contenuto)">' . $menu
[$i] . '</a>';
echo '
';
}
?>
</td>
<td>
<div id="contenuto" style="width: 100%; background-color :
#FFFFFF;">
seleziona la voce dal menu</p>
</div>
</td>
</tr>
</table>
<script src="js/prototype.js"></script>
<script src="js/rico.js"></script>
<script>
function startAjax()
{
ajaxEngine.registerRequest ('ajaxServer', 'ajax_server5.php');
ajaxEngine.registerAjaxObject('updatePage', new UpdatePage());
}
function menu(id, target)
{
startAjax();
// FadeTo(element, opacity, duration, steps)
new Rico.Effect.FadeTo(target, 0, 500, 10);
ajaxEngine.sendRequest('ajaxServer', "updateElement=" + id);
}
var UpdatePage = function() {}
UpdatePage.prototype.ajaxUpdate = function(ajaxResponse)
{
var target = "contenuto";
var value = ajaxResponse.childNodes[0].getAttribute('value');
Element.update(target, value);
new Rico.Effect.FadeTo(target, 1, 500, 10);
}
</script>
</body>
</html>
poi ho questa pagina che invia i dati che andranno messi nel div "contenuto"
Codice PHP:
<?php
sleep(3);
$res = $_GET['updateElement'];
// send header
header('Content-type: text/xml');
// send XML response
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<ajax-response>';
echo '<response type="object" id="updatePage">';
echo '<result id="0" value="' . $res . '"/>';
echo '</response>';
echo '</ajax-response>';
?>
Il problema sarebbe questo:
Quando clicco per esempio menu0 ho un effetto fade su div "contenuto" e cambia il contenuto di div in 0.
Se clicco per esempio menu1 ho un effetto di fade su div "contenuto" e cambia il suo contenuto in 1.
Ma se riclicco su menu0 non ho un effetto di fade, o per lo meni ce l'ho si ma rapidissimo e impercettibile, cmq sia mi cambia il contenuto.
La mia domanda è: Perchè fa così? dove ho sbagliato nel codice?
Qui potete vedere la pagina di esempio: http://www.mathome.it/ajaxtest/ajaxvsphp2.php
Grazie in anticipo