当我使用django框架时,如何在下拉菜单中使用ajax来选择项目?

当我使用django框架时,如何在下拉菜单中使用ajax来选择项目?,ajax,django,Ajax,Django,我正在开发一个Django框架,我对Django和Ajax都非常陌生。我使用了一个下拉列表,我需要从中选择一个项目,并相应地以类似表格的格式显示其详细信息。有人能帮我写一个Ajax代码吗。另外,如果您能建议我如何为它构建相应的视图,那就太好了 我试图编写的代码如下所示: <script type="text/javascript"> $(function() { $('#profession').change(function() { $.ajax({ url

我正在开发一个Django框架,我对Django和Ajax都非常陌生。我使用了一个下拉列表,我需要从中选择一个项目,并相应地以类似表格的格式显示其详细信息。有人能帮我写一个Ajax代码吗。另外,如果您能建议我如何为它构建相应的视图,那就太好了

我试图编写的代码如下所示:

<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中的正则表达式相同?