Executer fonction php sans recharger page

Fermé
yoshiro Messages postés 496 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 - 15 avril 2011 à 21:00
yoshiro Messages postés 496 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 - 20 avril 2011 à 14:25
Bonjour,
Je sais que le PHP j'exécute au niveau serveur mais je ne sais pas comment appeler ma fonction PHP sans recharger la page.
Lorsque je clique sur un lien j'affiche la page voulue sans le recharger grâce à une fonction JavaScript. mais je le problème c'est que je dois activer une fonction PHP pour prendre en compte les nouvelles paramètre.

Voici la fonction que je veux exécuter
public function list_dir($base, $cur, $level=0) 
	{
  		global $PHP_SELF, $BASE;
		$dir = $_GET['dir'];
 	 	if ($dir = opendir($base)) 
		{
    		while($entry = readdir($dir)) 
			{
      			/* chemin relatif ? la racine */
      			$file = $base."/".$entry;
      			if(is_dir($file) && !in_array($entry, array(".",".."))) 
				{
        			/* marge gauche */
        			for($i=1; $i<=(4*$level); $i++) 
					{
            			echo "&nbsp;";
        			}
        			/* l'entr?e est-elle le dossier courant */
					/* listage des dossiers */
					$fich=$this->taille_nom($entry);
					if(preg_match("#$file#", $cur)) 
					{
						echo"<img src=\"images/dir-open.gif\"/><a href=\"$PHP_SELF?dir=".rawurlencode($file)."\" alt=\"$entry\" class=\"wajax\" onclick=\"ChangeAmount('".$file."');\"><b>&nbsp;$fich</b></a><br/>\n";
					}
					else
					{
  						echo"<img src=\"images/dir-close.gif\"/>&nbsp; <a href=\"$PHP_SELF?dir=".rawurlencode($file)."\" alt=\"$entry\" class=\"wajax\" onclick=\"ChangeAmount('".$file."');\">$fich</a><br/>\n";
					}
					/* l'entr?e est-elle dans la branche dont le dossier courant est la feuille */
        			if(preg_match("#$file#", $cur)) 
					{
            			$this->list_dir($file, $cur, $level+1);
        			} 
      			}
    		}
    		closedir($dir);
  		}
	} 


Merci d'avance !!

A voir également:

3 réponses

yoshiro Messages postés 496 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 65
16 avril 2011 à 16:03
Uping !!
0
Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
16 avril 2011 à 17:50
Salut,
Je repasserai plus tard pour t'expliquer mais utilise, en Javascript, l'AJAX (cherche sur Google).
;-)
0
ktm620enduro Messages postés 293 Date d'inscription mardi 21 septembre 2010 Statut Membre Dernière intervention 12 mars 2013 38
Modifié par ktm620enduro le 16/04/2011 à 18:36
il faut que tu utilises l'objet JS XMLHttpRequest :

https://www.commentcamarche.net/contents/5-ajax-asynchronous-javascript-and-xml

http://lassadf.free.fr/supportAJAX.html#dstructure

https://openweb.eu.org/articles/objet_xmlhttprequest/

https://siddh.developpez.com/articles/ajax/

http://www.modernmethod.com/sajax/



Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
0
yoshiro Messages postés 496 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 18 avril 2018 65
20 avril 2011 à 14:25
oki merci !!
Mais j'ai un autre problème, j'ai trouvé la solution, mais un cours a recharge avec le Javascript et quand je clique sur le deuxième lien ça recharge avec le PHP !!
J'ai pas trouvé pourquoi !!

voici le code

/* Fonction chargement ajax avec animation, 
 * vous pouvez modifier la vitesse (slow, fast, 1500, ...) 
 * et l'effet (slideUp, fadeOut, ...) */
 
function ajax_page_advanced(ele,msg,url)
{
	$(ele).slideUp("slow", function()
	{
		$(ele).html(msg).show("slow", function()
		{
			$(ele).load(url+" "+ele, null, function()
			{
				var tampon = $(ele).html();
				$(ele).html(msg).hide("slow",function()
				{
					$(ele).html(tampon);
					$(ele).slideDown("slow");
				});
			});
		});
	});
}
 /*Fonction de chargement ajax simple */
function ajax_page(ele,msg,url)
{
	$(ele).html(msg).load(url+" "+ele);
}
/* Fonction de chargement ajax simple */
function ajax_page_delayed(ele,msg,url)
{
	$(ele).html(msg);
	setTimeout(function(){
		$(ele).load(url+" "+ele);
	}, 1500)
	alert(url);
}


/* Une fois la page chargée dossiers */
$(document).ready(function()
{
	//Application du chargement ajax avec animation sur les liens ayant une classe "wajax"
	$("a.wajax").click(function()
	{
		ajax_page_advanced('#swithcontenuse','<center><img src="images/loader.gif" ></center>',this.href);
		return false;
		alert(url);
	});
});

function GetHRObject()
{
	var HttpReq;
	if(window.XMLHttpRequest) // Firefox
	{
		HttpReq=new XMLHttpRequest();
	}
	else
	{
		try
		{
			HttpReq=new ActiveXObject('Microsoft.XMLHTTP'); // I.E
		}
			catch(e)
			{
				alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				HttpReq=null;
			}
	}
	return HttpReq;
}

function ChangeAmount(ref)
{
	var HttpReq=GetHRObject();
	HttpReq.onreadystatechange=function()
	{
		if(HttpReq.readyState==4&&HttpReq.status==200)
		{ 
		}
	}
	HttpReq.open('GET','alt_index.php?dir='+ref,true);
	HttpReq.send(null);
}
0