Как получить переменную из обратного вызова.ajax?
Я использую плагин editInPlace jquery для редактирования:
$(".edit-synonyms").editInPlace(varSettings);
Настройки для этого:
varSettings=
{
show_buttons: true,
error_sink: null,
context: "#error",
callback: function(idOfEditor, enteredText, originalHTMLContent, settingsParams, callbacks)
{
varID=$(this).attr('id');
var data ='update_value=' + encodeURIComponent(enteredText)
+ '&element_id=' + $(this).attr("id")
+ '&original_value=' + encodeURIComponent(originalHTMLContent);
$.ajax({
url: "/inc/ajax-synonim.asp?action=edit",
type: "POST",
data: data,
dataType: "html",
complete: function(request){
},
success: function(html, textStatus){
if (html != "False") {
$.get('/inc/ajax-synonim.asp?action=sinonimke&ID=' + IDSinonimka, function(data){
varBesede=data.split("|");
$('.sinonimke-'+IDSinonimka).text(varBesede[1]);
$('.beseda-'+IDSinonimka).text(varBesede[0]);
})
} else {
alert("Word exists in database!")
}
}
})
alert(error);
var new_text = enteredText || originalHTMLContent;
return new_text;
}
}
Моя проблема заключается в том, что я получаю то, что возвращается со стороны сервера в случае успеха.ajax в виде переменной html. Но эта переменная не видна в настройках (вне вызова.ajax). Если это не видно, я не могу определить, была ли обратная передача ложной или имеет хорошее значение, и я не могу ответить должным образом.
- Есть ли способ увидеть переменную html в обратном вызове вне функции.ajax?
- Если нет, то есть ли способ вернуть значение html из функции.ajax в функцию обратного вызова встроенного редактора?
- Если нет, то есть ли единственный способ сделать еще один вызов ajax в обратном вызове, чтобы проверить наличие слова?
1 ответ
В конце вашего AJAX-сценария добавьте следующее:
выведите "var yourvariable = yourvalue;"
и используйте что-то вроде этого для вызова ajax:
$.post("/inc/ajax-synonim.asp?action=sinonimke&ID=' + IDSinonimka",{your attributes}, function(sScript) {
try {
eval(sScript);
} catch(error) {
alert(error.message+"\n"+sScript);
}
return false;
});
Ваш скрипт php ajax выведет "var yourvariable = yourvalue;" и jquery попытается выполнить этот скрипт. Тадаа, у тебя есть твоя переменная ajax, проанализированная в javascript.