par
artotal » 04 févr. 2007, 02:47
j'ai trouvé je me suis servis d'une méthode de prototype.
http://creatif-web.be/developpeur/dossier_ajax4.php
@ajolca
je voulais récupérer une liste en php d'une table pour faire de l'ajax, donc fallait transformer ça en js, ma solution semble un peu lourde, j'utilise la méthode
Event.observe()
http://prototype.js.le-developpeur-web. ... erve().php
ce qui donne en code :
echo '<script type="text/javascript">';
$i=1;
$query = "SELECT * FROM pages order by page";
$result = mysql_query($query, $lien);
while($ok = mysql_fetch_array($result))
{
echo 'document.write("<li><a id=\"'.$ok['page'].'\" href=\"javascript:void(0);\">['.$ok['page'].']</a></li>");';
$fonction=$ok['page'].$i++;
?>
function <?php echo $fonction;?>()
{
Event.observe("<?php echo $ok['page'];?>","click",envoie);
function envoie()
{
alert("<?php echo $ok['page'];?>");
}
}
</script>
<script type="text/javascript">
function addLoadEvent(func)
{
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
window.onload = func;
}
else
{
window.onload = function()
{
oldonload();
func();
}
}
}
addLoadEvent(<?php echo $fonction;?>);
<?php }?>
</script>
</ul>
<script type="text/javascript">
var ajax = new Ajax.Updater(
'datestr', // DIV id (XXX: doesnt work?)
'/developpeur/salut_php.php', // URL
{ // options
method:'get', parameters:'page=23',
onComplete: showResponse, evalScripts:true
});
function showResponse(req)
{
$('datestr').innerHTML = req.responseText;
new Effect.toggle('datestr', 'BLIND');
new Effect.Highlight('datestr', { startcolor:'#3366FF', endcolor:'#33CCFF', restorecolor:'#fff', duration: 1});
}
</script>
<p>2/ <div id="datestr" style="display:none;">hahaha</div></p>
parceque si j'ai trente lien sa risque d'être lourd, faut voir, moi mon FF prend 350mo, je ne peux pas trop m'en redre compte, sachant qu'il va y avoir autour de 20 liens pour se site !
j'ai trouvé je me suis servis d'une méthode de prototype.
http://creatif-web.be/developpeur/dossier_ajax4.php
@ajolca
je voulais récupérer une liste en php d'une table pour faire de l'ajax, donc fallait transformer ça en js, ma solution semble un peu lourde, j'utilise la méthode
Event.observe()
http://prototype.js.le-developpeur-web.com/Event.observe().php
ce qui donne en code :
[php]
echo '<script type="text/javascript">';
$i=1;
$query = "SELECT * FROM pages order by page";
$result = mysql_query($query, $lien);
while($ok = mysql_fetch_array($result))
{
echo 'document.write("<li><a id=\"'.$ok['page'].'\" href=\"javascript:void(0);\">['.$ok['page'].']</a></li>");';
$fonction=$ok['page'].$i++;
?>
function <?php echo $fonction;?>()
{
Event.observe("<?php echo $ok['page'];?>","click",envoie);
function envoie()
{
alert("<?php echo $ok['page'];?>");
}
}
</script>
<script type="text/javascript">
function addLoadEvent(func)
{
var oldonload = window.onload;
if(typeof window.onload != 'function')
{
window.onload = func;
}
else
{
window.onload = function()
{
oldonload();
func();
}
}
}
addLoadEvent(<?php echo $fonction;?>);
<?php }?>
</script>
</ul>
<script type="text/javascript">
var ajax = new Ajax.Updater(
'datestr', // DIV id (XXX: doesnt work?)
'/developpeur/salut_php.php', // URL
{ // options
method:'get', parameters:'page=23',
onComplete: showResponse, evalScripts:true
});
function showResponse(req)
{
$('datestr').innerHTML = req.responseText;
new Effect.toggle('datestr', 'BLIND');
new Effect.Highlight('datestr', { startcolor:'#3366FF', endcolor:'#33CCFF', restorecolor:'#fff', duration: 1});
}
</script>
<p>2/ <div id="datestr" style="display:none;">hahaha</div></p>
[/php]
parceque si j'ai trente lien sa risque d'être lourd, faut voir, moi mon FF prend 350mo, je ne peux pas trop m'en redre compte, sachant qu'il va y avoir autour de 20 liens pour se site !