所以,我试图通过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>
答案 0 :(得分:1)
好吧,{}似乎导致了这个问题。这可能是因为jQuery在Jinja2模板中,但即使添加{%raw%}也没有改变结果。通过将脚本更改为:
data:"AlternativeTitle:" + alttitle + '&' "othervalue" + otherval,
我在服务器上获得了序列化版本。我还没有把它写回db,但我认为它现在可以工作了。谢谢Fosco和Antoine。
答案 1 :(得分:0)
您是否先尝试获取该值?试一试:
var alttitle = $("#AltTitle").html();
$.ajax({
type:"POST",
url:"/edit/29241",
data:{ AlternativeTitle : alttitle },
success:function(result){
alert( result );
}
});
答案 2 :(得分:0)
我要做的第一件事就是在浏览器的Javascript控制台中输入$("#AltTitle").html()
来查找request.params['AlternativeTitle']
的值(Chrome中的Ctrl + I)。然后,如果结果符合您的预期,我会检查浏览器的开发人员工具中发布的值,以确保发布的AlternativeTitle的值符合您的预期。在Chrome中,您将在开发人员工具的“网络”标签中看到您的HTTP请求。然后我会看一下代码服务器端。
但是没有那么多可能出现服务器端错误,因为你说{{1}}在那里但是空的。