2016-03-25 34 views
0

Javascript için bir URL içinde parametreler nasıl iletilir? Böyle bir durum var:Yöntem JQuery'de URL kullanıldığında İzin verilmiyor

/admin/users/delete/%27%20+%20user_id%20+%27 

Ben geçmelidir nasıl

$('.btn-delete').click(function() { 
    var user_id = $(this).attr('userid'); 
    console.log(user_id); 
    $('#modal-form').attr('action', "{{ url_for('admin.delete_user' , id="' + user_id +'") }}"); 
}); 

user_id değişken Böyle yaparsanız ben URL şöyle Method Not Allowed because almak bir değeri 56f52ea551d72027711157d6

sahiptir bu bölümdeki argümanlar?

$('#modal-form').attr('action', "{{ url_for('admin.delete_user' , id="' + user_id +'") }}"); 

lütfen birisi bana yardım etsin?

Düzenleme: Python rota admin.delete_user kullandığımız yöntemdir:

mod_admin.add_url_rule('/users/delete/<string:id>', methods=['GET']) 
def delete_user(self, id): 
    mongo.db.users.remove({'_id': ObjectId(id)}) 
    return redirect(url_for('admin.users')) 

Ve kalıcı açılan:

<div class="modal fade" id="myModal" role="dialog"> 
<div class="modal-dialog modal-sm"> 
    <div class="modal-content"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
     <h4 class="modal-title"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></h4> 
    </div> 
    <form id="modal-form" action=" " method="POST"> 
    <div class="modal-body"> 
     <p>Are you sure?</p> 
    </div> 
    <div class="modal-footer"> 
      <button type="button" class="btn btn-default btn-sm btn-style" data-dismiss="modal">Cancel</button> 
      <button type="submit" class="btn btn-default btn-sm btn-filter-apply btn-style" >Yes</button> 
    </div> 
    </form> 
    </div> 
</div> 

cevap

1

şablon {{ }} değerlendirilir Çünkü jinja tarafından ve önce bir dize dönüştürülür tarayıcı hiç görmez, ihtiyacınız yok Gösterdiğiniz gibi tüm dizeleri birleştirmek için. id parametresi, standart bir anahtar kelime argümanları olarak geçirilmelidir.

$('#modal-form').attr('action', "{{ url_for('admin.delete_user' , id=user_id|string) }}"); 

Ayrıca

Çünkü user_id aslında javascript tanımlanan bu

mod_admin.add_url_rule('/users/delete/<string:id>', methods=['GET', 'POST']) 

UPDATE güncelleyerek belirtilen URL'ye POST isteklere izin gerekecek, bu bir sorundur user_id, jinja'dan erişilemediği için. Bundan kaçınmak için, bu şekilde URL oluşturmak gerekir:

$('#modal-form').attr('action', "{{ url_for('admin.delete_user') }}" + user_id); 
+0

Bunu kullanırsanız ben bu url/yönetici/kullanıcılarını olsun///değil doğru olanı/yönetici/kullanıcıları silmek silmek/56f52ea551d72027711157d6 – EgzEst

+0

@EgzEst Sonra görüşünüzü göstermeniz gerekecek. Rotanızı yanlış tanımladığınızı farz ediyorum. – Suever

+0

Lütfen kontrol edin sorumu cevaplandırdım, rotayı ekliyorum – EgzEst

İlgili konular