0

我正在使用 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 调用以检查单词是否存在的唯一方法是什么?
4

1 回答 1

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。

于 2011-03-17T12:30:15.647 回答