Valeur de retour d'une fonction

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
charlessapin
Messages : 2
Enregistré le : 20 déc. 2020, 21:45

Valeur de retour d'une fonction

Message par charlessapin » 20 déc. 2020, 22:02

Bonjour,
Je veux récupérer la valeur de retour d'une fonction et je n'y arrive pas ! Je tourne en rond depuis quelques heures et je passe donc le relais :-(

Ma fonction javascript "js_infos(ref, lang)" appelle une fonction php "infos(valeurs)" qui retourne la valeur d'un champs d'une base de données dans la langue voulue.
Je reçois bien la bonne valeur dans "function( data )"
Dans la console j'ai
dedans : la bonne chaine de caractère
Par contre, je ne sais pas comment sortit cette valeur de ma fonction !
Dans la console, j'ai
dehors :undefined
Mon dernier essais était de déclarer tmp_val en variable global (avant tout appel à une fonction js).

Code : Tout sélectionner

function js_infos(ref, lang) {
	var valeurs = [ref, lang];
	var result = $.post('/php/fonctions.php', { fonction : 'infos', data : valeurs}, function( data ) {
		tmp_val = data.ref;
		console.info( "dedans :" + tmp_val);
		}, "json");
		
	result.fail(function(jqXHR, textStatus, error){ 
      console.log(jqXHR, textStatus, error); // use the debugger to see what’s going on here.
	})
	
	console.info( "dehors :" + tmp_val);
	return tmp_val;
}
Merci d'avance pour votre aide ;-)

Charles

charlessapin
Messages : 2
Enregistré le : 20 déc. 2020, 21:45

Re: Valeur de retour d'une fonction

Message par charlessapin » 21 déc. 2020, 09:18

Bonjour,
J'avais, entre autre, un problème lié à une communication asynchrone...
J'ai résolu celui-ci de la manière suivante :

Code : Tout sélectionner

function js_infos(ref, lang, callback) {
	var valeurs = [ref, lang];
	var result = $.post('/php/fonctions.php', { fonction : 'infos', data : valeurs}, function( data ) {
		callback(data.ref);
		}, "json");
	result.fail(function(jqXHR, textStatus, error){ 
      console.log(jqXHR, textStatus, error); // use the debugger to see what’s going on here.
	})
}
J'avais aussi un problème de fonction appelante qui était fermée (cf problème de variable global qui ne fonctionnait pas comme prévu).
Charles

Répondre