Request in Flask return empty data

Viewed 219

I am building an application in Flask and JavaScript and I have a problem with the Ajax in Flask. How can I handle it in Flask i mean using if. I use if request.method=='POST' but I have the form too and when I try if 'form-submit' in request.form and print nazwa_event = request.form.get('nameOfEvent') this return me nothing I mean it is empty.

Code JavaScript:

$("#search-button_event").click(function () { // make ajax request on btn click
        $.ajax({
            type: "POST",
            url: "/mapaa", // url to the function
            data: {
                nameevent: $("#name_of_event").val(), // value of the form
            },
            success: function (response) {
                 id = (response['id']);
                 nazwa = (response['name']);
                 droga = (response['route']);
                 

                 droga_without = droga.replaceAll("{","")
                 droga_with2 = droga_without.replaceAll("}","")

                 var string = droga_with2.split(',');

                let marker_event = L.marker(array[0]).bindPopup()
                marker_event._popup.setContent(
                                                                '<form method="POST" action="/mapaa"'+
                                                                '<p>Nazwa: '+nazwa+'</p>'+
                                                                '<input name="nameOfEvent" type="hidden" value="" id="idname">'+
                                                               
                                                                '<button type="submit" id="form-submit" name="form-submit"  class="btn btn-warning btn-block">Dołącz do wydarzenia</button>'+
                                                                '</form>')

                marker_event.addTo(mymap)

                polyline_event = L.polyline(array,{color: 'red'})
                marker_event.on('click',function(){
                    polyline_event.addTo(mymap)
                })
                marker_event.getPopup().on('remove', function() {
                    polyline_event.remove()
                })


                $('input[id=idname]').val(nazwa.value);
                mymap.setView(array[0],14)
            },
        });
    });

Code in Flask:

@app.route('/mapaa',methods=['GET','POST'])
def mapa():
    user_id = current_user.get_id()
    slownik = {}

    if request.method == "POST":

        if request.is_json:
            req = request.get_json()
            nazwa = req['name']
            data_pocz = req['data_start']
            data_kon = req['data_end']
            typ = req['type']
            dlugosc = req['len_route']
            coord = req['coordinates']
            event_database = Event(date_start=data_pocz, date_end=data_kon, type=typ, name=nazwa, len_route=dlugosc,admin=user_id, route=coord)
            db.session.add(event_database)
            db.session.commit()
            print('Dodano wydarzenie')




        if 'form-submit' in request.form:
            nazwa_event = request.form.get('nameOfEvent')
            print("Name:",nazwa_event)
            
        else:
            name_ev = request.form.get('nameevent')
            all_data = Event.query.filter_by(name=name_ev).all()
            for row in all_data:
                date_st_string = str(row.date_start)
                date_end_string = str(row.date_end)
                slownik = {'id':row.id,'date_st':date_st_string,'date_end':date_end_string,'type':row.type,'name':row.name,'len_route':row.len_route,'route':row.route}
            return jsonify(slownik)
    return render_template('mapaa.html', title='Mapa')

It is problem with the form or name of something ?

0 Answers
Related