Данные через jQuery AJAX в беде Pyramid - PullRequest
1 голос
/ 06 июня 2011

Итак, я пытаюсь опубликовать значение элемента с идентификатором «AltTitle» через AJAX обратно в бэкэнд Pyramid. С кодом ниже, Python получает request.param AlternativeTitle. Вот и все. Неважно. Я застрял. Я хочу узнать, как создать словарь данных AJAX, чтобы потом можно было передавать все значения обратно в Python, но пока я не могу заставить его работать. Любая помощь приветствуется ....

$(document).ready(function(){
    $("button").click(function(){
        $.ajax({
            type:"POST",
            url:"/edit/29241",
            data:{
                "AlternativeTitle": $("#AltTitle").html()
            },
            success:function(result){
                alert( result );
                }
        });
    });
});
<p id="AltTitle" contenteditable=True>Existing Title</p>
<button>Save</button>

Ответы [ 3 ]

1 голос
/ 07 июня 2011

Хорошо, похоже, {} вызывают проблему. Это может быть потому, что jQuery находится внутри шаблона Jinja2, но даже добавление {% raw%} не изменило результат. Изменив скрипт на:

data:"AlternativeTitle:" + alttitle + '&' "othervalue" + otherval,

Я получил сериализованную версию на сервере. Мне еще предстоит написать это обратно в БД, но я думаю, что теперь это сработает. Спасибо Фоско и Антуану.

0 голосов
/ 07 июня 2011

Первое, что я хотел бы сделать, это посмотреть значение $("#AltTitle").html(), набрав его в консоли Javascript вашего браузера (Ctrl + I в Chrome). Затем, если результат будет таким, как вы ожидаете, я бы проверил значение, опубликованное в инструментах разработчика вашего браузера, чтобы убедиться, что опубликованное значение AlternativeTitle соответствует ожидаемому. В Chrome ваши HTTP-запросы будут отображаться на вкладке «Сеть» инструментов разработчика. Тогда я бы посмотрел на стороне сервера кода.

Но не так уж много может пойти не так, как на стороне сервера, поскольку вы говорите, что request.params['AlternativeTitle'] есть, но пусто.

0 голосов
/ 06 июня 2011

Вы пытались получить значение первым? Дайте этому шанс:

    var alttitle = $("#AltTitle").html();
    $.ajax({
        type:"POST",
        url:"/edit/29241",
        data:{ AlternativeTitle : alttitle },
        success:function(result){
            alert( result );
            }
    });
...