Предоставление переменных из HTML в Python - PullRequest
0 голосов
/ 13 декабря 2018

Я хочу передать переменные из html в python, используя javascript.

При нажатии на панель навигации кодируется как:

aa.html      
   <a href="{{url_for('to_python')}}" id='aa'>hello</a>

Где to_python маршрут ведет к bb.html

Я хочу передать переменную animal='dog' при нажатии на aa.html href.


Я пытался использовать

$("#aa").attr("href", '?animal=dog')

Но это не относится к bb.html.Результат: aa.html?animal=dog (я хочу bb.html?animal=dog)


※ Также мне хотелось бы узнать, как передать переменные в методе POST с использованием JavaScript.Есть идеи?


Я пытался использовать

$('#aa').on("click", function(){
  $.post('/to_python', {animal:'dog'}, function(res){
  .....something
  }

Но этот код иногда работает, а иногда нет.Не знаю, что не так.

1 Ответ

0 голосов
/ 13 декабря 2018

Если вы хотите изменить URL с помощью JavaScript, попробуйте что-то вроде

var $aa = $("#aa");
$aa.attr("href", $aa.attr("href").split("?")[0] + "?animal=dog");

То есть, вместо замены href, возьмите все, прежде чем какие-либо параметры, которые у него уже могут быть, затем замените параметры на чтоты хочешь.Например,

  • <a href="hello"> станет <a href="hello?animal=dog">
  • <a href="hello?parameter=yes"> станет <a href="hello?animal=dog">

и т. Д.Если вам нужно сохранить другие параметры, вам нужно сделать немного больше:

var $aa = $("#aa");
var currentHref = $aa.attr("href");
$aa.attr("href", currentHref + (currentHref.indexOf("?") == -1 ? "?" : "&") + "animal=dog");

Таким образом

  • <a href="hello"> станет <a href="hello?animal=dog">
  • <a href="hello?parameter=yes"> станет <a href="hello?parameter=yes&animal=dog">
...