<textarea>
から電子メールテンプレートとしてHTMLを保存しようとしています。これは複数の場所で行うことができるので、パラメータを受け取り、必要に応じて保存できるsave_email_template()
関数を作成したい(これはsucessfulylが行った)。AJAXコールのDATAパラメータをutliziesする関数のコールバックを定義します
また、save_email_template()
関数が呼び出されるたびにコールバックを指定する必要があります。 catchはコールバック内にありますsave_email_template()
関数内のajax呼び出しから返されたdata
をさまざまな方法で処理したいと思います。
function save_email_template(options,callback){
$.ajax({
type: "POST",
url: '/save_email_template.php',
data: options.params,
success:function(data) {
if (typeof callback === 'function') {
callback(data);
}
}
});
}
save_email_template({
params: {
'action':'add',
'eid':$('input#id').val(),
'title':$('input#name').val(),
'html':$('textarea#html').val()
}
}, function(data){ // <---- "Data" Not Defined
if (typeof data.html_issues !== 'undefined') {
console.log('HTML Issues:\n------------------');
console.error(data.html_issues);
}
if (typeof data.css_issues !== 'undefined') {
console.log('CSS Issues:\n------------------');
console.error(data.css_issues);
}
if (data.status == "OK") {
$('body').append(data.html);
} else {
if (typeof data.error_msg !== 'undefined')
alert(data.error_msg);
if (data.status == "ERROR")
console.error(data);
}
});
ISSUE:
私はJSエラーになっ状態維持 ' "データ" を定義していない' とその私のコールバックを参照する...このコードfunction(data){...}
は、ここに私のコードです。 Obviosly data
はまだ定義されていませんが、AJAX呼び出しで返されたdata
の参照方法はありますか?
'save_email_template()'関数にコールバックを渡さないでください。代わりに、関数からajax呼び出しを返し、[.done() 'または' .then() 'ハンドラを[jqXHR](http://api.jquery.com/jQuery.ajax/#jqXHR)に記述します。返されます。 – dave
@dave TBH、コールバックには何も問題はありません... DigitalMC:私はこの質問をはっきりと理解していないので、なぜそのエラーが出るのかわかりません。それは完全なコードですか? –
@dave戻り値にアクセスするには変数にsave_email_template()関数を入れる必要はありませんか?私はそれを設定する方法についてはちょっと混乱しています。 – DigitalMC