Rechercher : dans
Par :

Passage de variable php dans ajax

Dernière réponse le 18 oct 2007 à 18:47:34 smawn, le 10 oct 2007 à 21:56:33 
 Signaler ce message aux modérateurs

Salut,
Je fais un site perso avec de l'ajax ( http://smawn.free.fr ) et je voudrais faire passer une variable php à un autre div (charger par ajax .php) sur le click d'un <a href> appellant ma fonction ajax et page php... voila je pense que c conci mais clair ??

pour ceux qui vont voir la démo du site au lieu que les vodéos s'affiche ds le tableau ou il y les decription, le nom et l'image je que sur un href j'envoi l'id de la video ou la video elle même ds le div ou je recharge ma page de lecteur video.

n'hésitez pas à répondre si vous n'avez pas bien compris mon prob
A+ Smawn

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « passage de variable php dans ajax » dans :
[Webmaster] Afficher facilement le code php/xhtml de vos pages VoirSi vous voulez proposer a vos visiteurs de voir la source de vos fichiers (PHP ou HTML), il y a plusieurs solutions. En php Afficher le code php Afficher le code html En html Informations Voir aussi En php Afficher le code php La...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
PHP - Affichage de texte sur le navigateur VoirLe but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces...

1

math, le 16 oct 2007 à 15:32:57

Bonjour,
petit problème de sécurité sur ton site!!!

Répondre à math

2

smawn, le 16 oct 2007 à 15:50:44
  • +2

Certes !! ce n'était pas ma question
Si c'est toi qui t'es amusé à bidouiller ma base de données, je trouve ça débile !
Si ce n'est pas toi c'est gentil de prévenir, en tout cas je savais que ma page d'admin était accesible par un initié, mais de là à faire du hacking sur un site purement démonstratif, et béta donc forcément avec des failles, je trouve ça d'une stupidité sans nom !!!

Répondre à smawn

3

alain42, le 16 oct 2007 à 17:03:36

Bonjour,

Tu peux passer plusieurs arguments a ta fonction Ajax lorsque tu l'appelles par le href= , donc une valuer de variable

Tu peux par le requette ajax les transmettre a ton script ajax php (data.send), qui peux te les retourner apres traitement et leur valeur sera chargee dans le div par le inner.HTML lors de la reponse.

Je ne sais pas si j'ai repondu assez clairement a ta question ?

@lain

Répondre à alain42

4

math, le 17 oct 2007 à 11:37:32

Bonjour,
dsl c'est pas moi
pas de chance
++

Répondre à math

5

smawn, le 17 oct 2007 à 19:28:30

Merci Alain42
mais c'est quoi ça : "data.send" , c'est du js ou du php, et je le met où ? en argument ds le href, ds ma fonction ajax ou ailleurs ?

Smawn
++

Répondre à smawn

6

Alain42, le 18 oct 2007 à 16:38:52
  • +4

Bonjour,

Ci joint un exemple de requette et traitement de la reponse en Ajax:

// Requette AJAX
function makeRequest(url,id_ecrire,arg1,arg2,arg3){
	var http_request = false;
		//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
        http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
		// lancement de la requete
		http_request.open('POST', url, true);
		//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		///// ici tu peux rajouter les autres valeurs que tu as passees en arguments lors de l'appel de la fonction
		data="val_1="+arg1+"&val_2="+arg2+"&val_3="+arg3;
        http_request.send(data);
}

function traitementReponse(http_request,id_ecrire) {
	var affich="";
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
					// cas avec reponse de PHP en mode texte:
			//chargement des elements reçus dans la liste
			var affich_list=http_request.responseText;
				obj = document.getElementById(id_ecrire); 
                obj.innerHTML = affich_list;
		} 
		else {
                alert('Un problème est survenu avec la requête.');
        }
    }
}




appel de la fonction par:
makeRequest('ton_fichier_php.php','id_du_div_a_ecrire','valeur_arg1','valeur_arg2','valeur_arg3')


et le div qui doit "recevoir"

<div id="id_du_div_a_ecrire">

</div>

dans ton fichier php appele par Ajax tu recuperes les arguments par

$_POST['val_1']
$_POST['val_2']
$_POST['val_3']


tu les traites comme tu veux et la réponse sera renvoyee et affichée dans le div.

Répondre à Alain42

7

smawn, le 18 oct 2007 à 17:39:36

Merci Alain42,
c'est vrai que cette fonction est un peu différente de celle que j'utilise pour l'instant, car entre temps g cherché ce fameux "data".send et j'ai trouvé une piste mais qq chose merdé ds ma fonction qui justement n'était pas adaptée à utilisé ce .send ou alors je me suis planté...bref
je n'ai pas encore testé ta fonction (ça ne serait tarder), je devrais moins galérer car ("bravo") elle est bien commenté donc je pourrais l'adapter et surtout la comprendre. ;-)

A+
Smawn

Répondre à smawn

8

 Alain42, le 18 oct 2007 à 18:47:34

Salut,

j'étais loin de mes bases, j'avais donné cette fonction de mémoire, en fait c'est:

http_request.send(data);

Répondre à Alain42