获取 URL 字段的值并用于 Ajax 脚本中的 POST 数据 - Django
Fetch URL Fields' Values and Use for POST Data in Ajax Script - Django
我有一个表单 (https://localhost:8000/generate/
),其中包含一个文本字段和一个生成 Django 对象的下拉菜单,来自该对象的数据显示在成功页面上。成功页面 URL 看起来像这样:
https://localhost:8000/success/?name=bob&theme=music&obj=some-cool-random-slug
在这个成功页面上,我有一个按钮,它基本上应该执行 "redo"(执行与生成页面相同的形式 post)并在同一成功页面上重新显示结果。用户还可以单击另一个按钮返回到原始生成页面并填写该表单。
在我的 Django 视图中,我想用这样的东西获取 URL 数据:
name = request.GET.get('name', '')
theme = request.GET.get('theme', '')
...然后使用 Ajax 将这些数据重新提交到 Django 视图(如上所述)。
原则上,我该怎么做? 正如@levi 指出的那样,post将数据发送到 /generate/
视图是做这个。 我希望生成 form/view 工作流按预期运行(访问 URL /generate/
,例如生成表单时),但当从成功中单击按钮时页。
Ajax
$(".redo").click(function() {
// fetchQueryString() defined elsewhere
var name = fetchQueryString['name'];
var theme = fetchQueryString['theme'];
$.ajax({
type: 'post',
url: '/generate/',
data: {
name: name,
theme: theme
},
success: function(response) {
console.log("ajax succeeded");
location.reload();
},
error: function(response) {
console.log("ajax failed");
},
});
});
更新
我大部分时间都在用这个。我已经在上面编辑了我的 Ajax 脚本。现在唯一不起作用的是在调用 "redo" 操作后,URL 不会更新新数据,尽管当 运行 从一开始的表单结果为正确的URL。如果视图本身使用新数据设置 URL,我不确定为什么 URL 没有更新。
我该怎么做?
Post Ajax 脚本中的数据到 /generate/
.
Ajax
$(".redo").click(function() {
// fetchQueryString() defined elsewhere
var name = fetchQueryString['name'];
var theme = fetchQueryString['theme'];
$.ajax({
type: 'post',
url: '/generate/',
data: {
name: name,
theme: theme
},
success: function(response) {
console.log("ajax succeeded");
location.reload();
},
error: function(response) {
console.log("ajax failed");
},
});
});
fetchQueryString()
脚本是此处的修改版本:
How can I get query string values in JavaScript?
我有一个表单 (https://localhost:8000/generate/
),其中包含一个文本字段和一个生成 Django 对象的下拉菜单,来自该对象的数据显示在成功页面上。成功页面 URL 看起来像这样:
https://localhost:8000/success/?name=bob&theme=music&obj=some-cool-random-slug
在这个成功页面上,我有一个按钮,它基本上应该执行 "redo"(执行与生成页面相同的形式 post)并在同一成功页面上重新显示结果。用户还可以单击另一个按钮返回到原始生成页面并填写该表单。
在我的 Django 视图中,我想用这样的东西获取 URL 数据:
name = request.GET.get('name', '')
theme = request.GET.get('theme', '')
...然后使用 Ajax 将这些数据重新提交到 Django 视图(如上所述)。
原则上,我该怎么做? 正如@levi 指出的那样,post将数据发送到 /generate/
视图是做这个。 我希望生成 form/view 工作流按预期运行(访问 URL /generate/
,例如生成表单时),但当从成功中单击按钮时页。
Ajax
$(".redo").click(function() {
// fetchQueryString() defined elsewhere
var name = fetchQueryString['name'];
var theme = fetchQueryString['theme'];
$.ajax({
type: 'post',
url: '/generate/',
data: {
name: name,
theme: theme
},
success: function(response) {
console.log("ajax succeeded");
location.reload();
},
error: function(response) {
console.log("ajax failed");
},
});
});
更新
我大部分时间都在用这个。我已经在上面编辑了我的 Ajax 脚本。现在唯一不起作用的是在调用 "redo" 操作后,URL 不会更新新数据,尽管当 运行 从一开始的表单结果为正确的URL。如果视图本身使用新数据设置 URL,我不确定为什么 URL 没有更新。
我该怎么做?
Post Ajax 脚本中的数据到 /generate/
.
Ajax
$(".redo").click(function() {
// fetchQueryString() defined elsewhere
var name = fetchQueryString['name'];
var theme = fetchQueryString['theme'];
$.ajax({
type: 'post',
url: '/generate/',
data: {
name: name,
theme: theme
},
success: function(response) {
console.log("ajax succeeded");
location.reload();
},
error: function(response) {
console.log("ajax failed");
},
});
});
fetchQueryString()
脚本是此处的修改版本:
How can I get query string values in JavaScript?