1

因此,我试图通过 AJAX 将 ID 为“AltTitle”的元素的值发布回 Pyramid 后端。通过下面的代码,Python 接收到 AlternativeTitle 的 request.param。就是这样。没有价值。我被困住了。我想学习如何构建一个 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>
4

3 回答 3

1

好的,似乎是 {} 导致了问题。这可能是因为 jQuery 在 Jinja2 模板中,但即使添加 {% raw %} 也不会改变结果。通过将脚本更改为:

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

我在服务器上获得了序列化版本。我还没有把它写回数据库,但我认为它现在可以工作了。感谢福斯科和安托万。

于 2011-06-07T00:42:22.553 回答
0

您是否尝试过先获得价值?试一试:

    var alttitle = $("#AltTitle").html();
    $.ajax({
        type:"POST",
        url:"/edit/29241",
        data:{ AlternativeTitle : alttitle },
        success:function(result){
            alert( result );
            }
    });
于 2011-06-06T15:26:42.623 回答
0

$("#AltTitle").html()我要做的第一件事是通过在浏览器的 Javascript 控制台(Chrome 中的 Ctrl+I)中键入它来查找值。然后,如果结果符合您的预期,我会检查您浏览器的开发人员工具中发布的值,以确保发布的 AlternativeTitle 的值符合您的预期。在 Chrome 中,您将在开发人员工具的网络选项卡中看到您的 HTTP 请求。然后我会看看代码服务器端。

但是服务器端并没有太多可能出错的地方,因为你说那里request.params['AlternativeTitle']是空的。

于 2011-06-07T00:11:35.587 回答