Перенести страницу после рисования листовки с flask, ajax - PullRequest
0 голосов
/ 29 апреля 2020

Привет, я разрабатываю приложение с Flask и картами Leaflet. На карте есть объекты геометрии. С помощью инструмента рисования пользователь dr aws многоугольные фигуры на карте и все данные объекта (то есть 'id'), которые попадают внутрь фигуры, должны отображаться в таблице html. Когда нарисована фигура, выполняется запрос POST. Хотя я могу распечатать данные в трассировке и увидеть их на вкладке Devtools Network Preview, я все еще не могу отобразить эти данные в html.

. Вот мой код JS, который отправляет запрос Post после Форма нарисована. Выходные данные дают координаты вершины фигуры.

mymap.on('pm:create', e => {
    var map_data = e["layer"]["_latlngs"][0];
    console.log(map_data);
    $.ajax({
      type: "POST",
      contentType: "application/json",
      url: "/",
      traditional: "true",
      data: JSON.stringify({map_data}),


      });
});

Затем я назначаю переменную с этими координатами и распечатываю их в app.py. Используя различные функции геоинструментов, я также финансирую Stuf внутри Polygon:

shape_coord = request.get_json() //gets shape coordinates

if shape_coord:
 filter_markers = marker_within_polygon(markers, shape_coord) //function finds markers within shape
 filter_lines = lines_within_polygon(lines, shape_coord)//function finds lines within shape

 print(shape_coord)// OK
 print(filter_markers, filter_lines)//OK. prints out stuff inside polygon

А вот мой jinja2:

<tbody id="table_body">

                        {% for mk in  filter_markers%}
                            <tr>
                                {% for ln in filter_lines %}
                                     <th>{{ ln }}</th>
                                     <th>{{ mk }}</th>
                                {% endfor %}
                             </tr>
                        {% endfor %}
 </tbody>

Я пытался использовать успешный обратный вызов в Ajax, как это, но помимо необходимых данных он вставляет в таблицу всю HTML -текстовую разметку:

mymap.on('pm:create', e => {
    var map_data = e["layer"]["_latlngs"][0];
    console.log(map_data);
    $.ajax({
      type: "POST",
      contentType: "application/json",
      url: "/",
      traditional: "true",
      data: JSON.stringify({map_data}),
      success: function (data) {
                    $("#table_body").html(data);

      });
});

Как я могу получить только мои данные маркера и строки, которые были отрисованы?

1 Ответ

0 голосов
/ 01 мая 2020

Я решил проблему. Успех зависит от правильного вопроса) Я нашел ответ здесь: Запрос ajax Ответ не отображается при возвращении на текущую страницу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...