当我使用django框架时,如何在下拉菜单中使用ajax来选择项目?
我正在开发一个Django框架,我对Django和Ajax都非常陌生。我使用了一个下拉列表,我需要从中选择一个项目,并相应地以类似表格的格式显示其详细信息。有人能帮我写一个Ajax代码吗。另外,如果您能建议我如何为它构建相应的视图,那就太好了 我试图编写的代码如下所示:当我使用django框架时,如何在下拉菜单中使用ajax来选择项目?,ajax,django,Ajax,Django,我正在开发一个Django框架,我对Django和Ajax都非常陌生。我使用了一个下拉列表,我需要从中选择一个项目,并相应地以类似表格的格式显示其详细信息。有人能帮我写一个Ajax代码吗。另外,如果您能建议我如何为它构建相应的视图,那就太好了 我试图编写的代码如下所示: <script type="text/javascript"> $(function() { $('#profession').change(function() { $.ajax({ url
<script type="text/javascript">
$(function() {
$('#profession').change(function() {
$.ajax({
url: '/fdp/instance_creation/(\d+)',
dataType: 'json',
type: 'GET',
// This is query string i.e. country_id=123
data: {instance_id : $('#profession').val()},
success: function(data) {
if(data == null || data ==""){
}
else{
document.getElementById("mytablebody").innerHTML="";
var srno=1;
for (var i = 0; i < data.length; i++) {
var table = document.getElementsByName("tablebody")[0];
var row = document.createElement('tr');
var cell1 = document.createElement('td');
var cell2 = document.createElement('td');
var cell3 = document.createElement('td');
var cell4 = document.createElement('td');
// var cell5 = document.createElement('td');
var text1 = document.createTextNode({{forloop.counter}});
var text2 = document.createTextNode(data[i].{{workshopid}});
var text3 = document.createTextNode(data[i].{{startdate}});
var text4 = document.createTextNode(data[i].{{enddate}});
// var text5 = document.createTextNode("");
cell1.appendChild(text1);
cell2.appendChild(text2);
cell3.appendChild(text3);
cell4.appendChild(text4);
//cell5.appendChild(text5);
row.appendChild(cell1);
row.appendChild(cell2);
row.appendChild(cell3);
row.appendChild(cell4);
//row.appendChild(cell5);
table.appendChild(row);
srno++;
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
});
</script>
我是这个领域的新手,如果您能原谅我的一些小错误,那就太好了。您希望这个URL发生什么
url: '/fdp/instance_creation/(\d+)',
你想在最后用什么来代替吗?你必须事先做那件事。你想要这个吗:
url: '/fdp/instance_creation/' + $('#profession').val(),
另外,您所说的代码是什么意思:
var text1 = document.createTextNode({{forloop.counter}});
var text2 = document.createTextNode(data[i].{{workshopid}});
var text3 = document.createTextNode(data[i].{{startdate}});
var text4 = document.createTextNode(data[i].{{enddate}});
{{}}将作为模板在Django一侧填写。感觉上你至少想要:
var text1 = document.createTextNode(i);
如果解析为JSON中的字段名,则其他字段可以工作
对于视图,您只需要使用JSON数据进行响应。要进行测试,只需创建一个返回硬编码字符串的视图函数,如[{'fld':'val','fld2':'val2'}]我不知道您的真实字段名,但请正确填写它们您希望此URL发生什么
url: '/fdp/instance_creation/(\d+)',
你想在最后用什么来代替吗?你必须事先做那件事。你想要这个吗:
url: '/fdp/instance_creation/' + $('#profession').val(),
另外,您所说的代码是什么意思:
var text1 = document.createTextNode({{forloop.counter}});
var text2 = document.createTextNode(data[i].{{workshopid}});
var text3 = document.createTextNode(data[i].{{startdate}});
var text4 = document.createTextNode(data[i].{{enddate}});
{{}}将作为模板在Django一侧填写。感觉上你至少想要:
var text1 = document.createTextNode(i);
如果解析为JSON中的字段名,则其他字段可以工作
对于视图,您只需要使用JSON数据进行响应。要进行测试,只需创建一个返回硬编码字符串的视图函数,如[{'fld':'val','fld2':'val2'}]我不知道您的真实字段名,但在ajax url中正确地填写它们,,在ajax url中/fdp/instance\u creation/\d+是否与url.py中的正则表达式相同,/fdp/instance\u creation/\d+是否与URL.py中的正则表达式相同?