これは機能しているコードですが、私が必要とする方法でもありません。後で説明します。
getRegisterFiles('regster1')
function getRegisterFiles(name) {
var request = $.ajax({
url: "/../files/Users/"+name+".ctp",
type: "GET",
dataType: "html"
});
request.fail(function(jqXHR, textStatus) {
$('#pageLoading p').html('We have experienced a problem. Please try again later.');
return false;
});
request.success(function(msg) {
placeData(msg);
});
}
function placeData(registerData) {
$('#pageWrap').html(registerData);
}
したがって、上記のコードは .ctp ファイルを取得し、それを画面に表示します。
私がする必要があること
成功部分に placeData(msg) を含める代わりに、「msg」の内容を、関数を開始する変数に返す必要があります。
register = getRegisterFiles('register1');
使ってみましたが、
return msg;
しかし、それは機能しません... return msgを使用してから「アラート」すると、未定義として表示されます。
次に何をすべきかわからないので、どんなアイデアでも大歓迎です。完全な初心者の間違いでしたら申し訳ありません。
編集--- これは私が試したコードです。私がやろうとしていることを示すのに役立つことを願っています。
var registerStep1 = null;
var registerStep2 = null;
function getRegisterFiles(name) {
var request = $.ajax({
url: "/../files/Users/"+name+".ctp",
type: "GET",
dataType: "html",
error: function(jqXHR, textStatus) {
$('#pageLoading p').html('We have experienced a problem. Please try again later.');
return false;
},
success: function(msg) {
return msg;
}
});
}
registerStep1 = getRegisterFiles('registerStep1');
registerStep2 = getRegisterFiles('registerStep2');
var tempInterval = setInterval(function() {
if(registerStep1 != null && registerStep1 != false) {
if(registerStep2 != null && registerStep2 != false) {
clearInterval(tempInterval);
placeData(registerStep1);
}
}
}, 100);
function placeData(registerData) {
var tempTimer = 0;
tempTimer = setInterval(function() {
if(controlTimeUp != false) {
$('#pageWrap').html(registerData);
methodToFixLayout();
$('#pageWrap').fadeIn("slow");
$('#pageLoading').css("display","none")
clearInterval(tempTimer);
}
}, 10)
}