Как получить переменную из обратного вызова.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). Если это не видно, я не могу определить, была ли обратная передача ложной или имеет хорошее значение, и я не могу ответить должным образом.

  1. Есть ли способ увидеть переменную html в обратном вызове вне функции.ajax?
  2. Если нет, то есть ли способ вернуть значение html из функции.ajax в функцию обратного вызова встроенного редактора?
  3. Если нет, то есть ли единственный способ сделать еще один вызов 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.

Другие вопросы по тегам