javascript - 表单数据未发送到服务器

标签 javascript jquery python ajax django

当用户单击查询的搜索结果中的按钮时,我有一个以模式形式弹出的表单。该表单具有三个输入字段和一些其他字段,一旦使用 ajax 单击提交按钮,这些字段就会附加到该表单上。由于这是 Django 应用程序的一部分,因此我正在服务器端的 View 中捕获值。我成功地从表单的输入字段中获取数据,但无法从附加字段中获取数据。

我对使用ajax还很陌生,所以很可能我做错了什么,但看起来数据应该发送到服务器。可能是什么问题?

这里是ajax调用和模态形式的代码:

<script type="text/javascript">
$("#mform").submit(function(){
    var c = getCookie('csrftoken');
    //var data1 = $().attr("");
    var extraData = [];
    extraData['venue'] = $("#invite").data("venue");
    extraData['artist'] = $("#invite").data("artist");
    extraData['f_date'] = $("#invite").data("formatted_date");
    extraData['uf_date'] = $("#invite").data("date");
    extraData['ticket_url'] =  $("#invite").data("ticket_url");
    extraData['city'] = $("#invite").data("city");
    extraData['region'] = $("#invite").data("region");
    extraData['artist'] = $("#invite").data("artist");
    var PostData = {csrfmiddlewaretoken: c, additionalValues:extraData}
    $ajax({
        //context:this,
        type : 'POST',
        dataType: 'json',
        url: '/artistsearch/',
        data: JSON.stringify(PostData),
        success: function(response){}
    });
});

编辑:

包含要发送的数据的 HTML

    <ul class= 'list-group'>
    {% for ticket in data %}
        <li  class = 'list-group-item' >
            Title: {{ticket.title}}
            Location: {{ticket.formatted_location}}
            Venue: {{ticket.venue.name}}
            Date: {{ticket.formatted_datetime}}
            tickets status: {{ticket.ticket_status}}<br>
            <a href = {{ticket.ticket_url}}> ticket url</a>
            {% if user.is_authenticated %}
                <button id = 'invite' type='button' class= 'btn btn-info btn-lg' data-toggle = 'modal' data-target='#myModal' data-artist = {{ticket.artists.name}} data-venue={{ticket.venue.name}} data-date = {{ticket.datetime}} data-formatted_date = {{ticket.formatted_datetime}} data-city= {{ticket.venue.city}} data-region = {{ticket.venue.region}} data-ticket_url={{ticket.ticket_url}} > Invite a friend </button>    
                <button id = 'save' type = 'button' class = 'btn btn-primary-outline'> Save Concert </button>
            {% endif %}
        </li>
    {% endfor %}
</ul>

最佳答案

您错过了按钮 ID 邀请的 # 选择器,它应该类似于 $("#invite")。使用像 data-artist 这样的属性,而不仅仅是 Artist,并像 $("#invite").data("artist) 或 $("#invite").attr("data-artist) 那样获取它。

然后像...一样发布它

var postData = { csrfmiddlewaretoken:c, 附加值:额外数据 } 然后发布数据,如

    $.ajax({
        type: 'post',
        url: 'URL here',
        data:JSON.stringify(PostData),
       // .......
      //   Other code here

        )};

关于javascript - 表单数据未发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477444/

相关文章:

python - 在 Visual Studio Code 中调试 Scrapy 项目

javascript - 需要时jquery更新功能

javascript - 如何删除除 "/"之外的特殊字符?

javascript - jquery .parent() 选择错误的元素

javascript - 如果 URL 有 "just one HTML line",jQuery.load() 为什么可以跨域工作?

javascript - 夏令时导致 Firefox 上的 jQuery UI 日期选择器出现问题

jquery - 是否可以使用 jquery 对表进行分页?

python - 是否可以使用 AND 运算符之类的东西编写 Python 正则表达式?

python - Django索引错误: pop from empty list within DeleteView

javascript - 计算重叠时间段的持续时间