Réponse courte, vous ne pouvez pas, le premier A dans AJAX signifie Asynchrone, ce qui signifie que la requête continue quand vous arrivez à l'instruction return.
Vous peut le faire avec synchrone (non-async) demande, mais il est généralement une mauvaise chose
Quelque chose comme ce qui suit oughta renvoyer les données.
function getPrice(productId, storeId) {
var returnHtml = '';
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: false,
cache: false,
dataType: "html",
success: function(html){
returnHtml = html;
}
});
return returnHtml;
}
MAIS
À moins que vous avez vraiment vraiment besoin d'être en mesure d'utiliser immédiatement la valeur de retour de test, vous serez beaucoup mieux passer un rappel en test. Quelque chose comme
function getPrice(productId, storeId, callback) {
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: true,
cache: false,
dataType: "html",
success: function(html){
callback(html);
}
});
}
//the you call it like
getPrice(x,y, function(html) {
// do something with the html
}
Modifier Sheesh, les gars vous êtes plus rapide de dire ce que je disais :-)
Gotchya - je me suis dit que je dois faire. mais si je devais le faire? –
Il est difficile de répondre à cette question sans savoir comment vous avez l'intention d'utiliser la méthode getPrice(). À quoi sert-il? Comment est-ce utilisé? C'est le code à ce niveau "externe" qui devra être ajusté. – cletus
Ok je l'ai eu. Je ne me suis pas rendu compte que productId et storeId seraient dans la portée et que je peux réellement passer ce genre de choses dans le rappel. –