我使用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调用之外)。如果它不可见,如果回发是假的或价值很高,我就无法判断,我无法正常回应。
答案 0 :(得分:1)
在你的ajax asp脚本结束时添加:
打印“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将尝试执行该脚本。 Tadaa,你已经把自己的ajax变量解析为javascript。