Executer fonction php sans recharger page

yoshiro Messages postés 496 Date d'inscription   Statut Membre Dernière intervention   -  
yoshiro Messages postés 496 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   65
 
Uping !!
0
Bilow Messages postés 1014 Date d'inscription   Statut Membre Dernière intervention   117
 
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   Statut Membre Dernière intervention   38
 
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   Statut Membre Dernière intervention   65
 
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