如何从.ajax回调变量?

时间:2011-03-17 12:23:12

标签: jquery function jquery-callback

我使用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调用之外)。如果它不可见,如果回发是假的或价值很高,我就无法判断,我无法正常回应。

  1. 有没有办法在.ajax函数之外的回调中查看html变量?
  2. 如果没有,有没有办法可以将.ajax函数中的html值返回到内联编辑器的回调中?
  3. 如果没有,是否可以在回调中进行另一个ajax调用来检查单词是否存在?

1 个答案:

答案 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。