Skunkpro
Messages postés10Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention23 septembre 2008 19 sept. 2008 à 15:21
Bonjour,
je suis en train de créer un petit truc pour permettre de voir quelles sont les maps sur un serveur Trackmania.
J'ai commencé à le faire en php, j'ai réussi, puis je me suis rendu compte que pour l'intégrer dans mon monitoring, je devais utiliser des iframes.
En effet, cette liste n'affiche que 12 maps, pour voir les suivantes, on appuie sur "next" et pour les précédentes "previous".
Le truc, c'est que la liste ne se met pas à jour, c'est une nouvelle page qui se crée pour les suivantes ou les précédentes.
Voici l'exemple
J'espère que vous comprenez jusque là
Donc, pour ne pas utiliser d'iframes, je voudrais le faire en ajax.
J'ai déjà réussi à afficher les douze premiers en ajax, mais c'est au niveau des "next" et "previous" que je bloque...
$i=1;
$client->query('GetChallengeList',$ResultParPage+1, $si);
if (!$Response = $client->getResponse()){
$done=TRUE;
}else{
foreach ($Response as $track){
if($ResultParPage>=$i){
$FileName = $cp->toHTML($track['Name']);
echo
'
<td>'.$FileName.'</td>
';
}
$i++;
}
if($i!=14){
$done=TRUE;
}
}
$link="tracklist$id.php";
if($page>1){
//link to previous page
$pageP=$page-1;
echo'['.$link.'?page='.$pageP.' ]';
}
if(!$done){
$pageN=$page+1;
echo'['.$link.'?page='.$pageN.' ]';
//link to next page
}
?>
Voici mon script ajax :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript" type="text/javascript">
<!--
idAffichageBloc = 0;
function filePOST(fichier,info)
{
return fileAjax(fichier,info,"POST",true);
}
function fileAjax(fichier,info,format,asyn)
{
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open(format, fichier, asyn);
if (format == "POST")
{
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //Spécifie un en-tête HTTP (headerName et headerValue) à envoyer avec la requête.
xhr_object.onreadystatechange = function() { // on guette les changements d'état de l'objet
if(xhr_object.readyState == 4) // l'état est à 4, requête reçu !
{
afficher(xhr_object.responseText);
}
cs_mike1310
Messages postés232Date d'inscriptionjeudi 30 août 2007StatutMembreDernière intervention31 juillet 2009 19 sept. 2008 à 16:14
et bien je ne sais pas .. apparemment non mais ce qui est bizarre c'est que normalement il devrait y avoir un alert() d'afficher mais ce n'est pas le cas donc c'est que tu as une erreur de javascript qui doit surement etre celle la : le info
Vous n’avez pas trouvé la réponse que vous recherchez ?
Skunkpro
Messages postés10Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention23 septembre 2008 19 sept. 2008 à 18:28
Merci de vos réponses à tous,
j'ai remplacer mes href par ça :
$link="tracklist$id.php";
if($page>1){
//link to previous page
$pageP=$page-1;
echo'[javascript:fileAjax('.$link.'?page='.$pageP.') ]';
}
if(!$done){
$pageN=$page+1;
echo'[javascript:fileAjax('.$link.'?page='.$pageN.') ]';
//link to next page
}
Enfin bref, ça ne marche pas :'(
Je dois changer quelque chose pour que ça marche ?
Je dois pas créer une fonction pagesuivante() qui à la place de tracklist0.php, il mettrait tracklist0.php?page=2 ?
Désolé, je débute complètement en javascript, et j'en ch**. :)
Merci d'avance pour votre aide/conseil.
djmmix
Messages postés152Date d'inscriptionlundi 28 juillet 2003StatutMembreDernière intervention29 avril 2009 20 sept. 2008 à 17:03
on peut le mettre soit dans href sous la forme :javascript:fonction() ou sur onclick ta le même résultat par contre le lien entre ajax ou simple script js c'est clair qu'il y a nuance....
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 20 sept. 2008 à 18:39
>>dans href ou sur onclick t'as le même résultat
à l'oeil, vu de l'extérieur... ça semble être la même chose !
et pourtant XTremDuke ( de mémoire d'Alzheimer ) dans ce forum,
nous avait expliqué les différences. on en cause ailleurs aussi, rien
noté sauf qu'utiliser href : c'est plus mieux ;o)
déjà, le onclick c'est redondant.
mais chacun fait comme il le sent, et la caravane passe.
plutôt que le lien ( qui rechargera la page ou mettra dans un iframe ),
il faudrait refaire un appel a ajax... ou alors,
ajax est inutile, me semble-t-il, même pour le "1er" appel.
Skunkpro
Messages postés10Date d'inscriptionlundi 25 juin 2007StatutMembreDernière intervention23 septembre 2008 22 sept. 2008 à 15:26
Merci de vos réponses à tous,
je voudrais utiliser de l'ajax pour ne pas avoir d'iframe.
Je n'ai toujours pas réussi à créer le script... :D
J'ai essayé les deux méthodes : avec href et sans.
Maintenant... Je crois que je vais laisser tomber pour le moment.
Je comprends pas trop comment ça fonctionne.
Je comprends pas comment le js pourrait comprendre le .$link."?page=".$pageN..
Pour que tout soit en Ajax, il faudrait peut-être que je crée le tableau en javascript, ça sera surement plus simple pour la suite. J'ai juste ? :D
Si vous avez des pistes à me donner, je vous en prie !!
Voici avec quel code j'ai réussi :
if($page>1){
//link to previous page
$pageP=$page-1;
echo "";
}
if(!$done){
$pageN=$page+1;
echo "";
//link to next page
}
Maintenant, je dois juste réussir à l'inclure dans une page php :P