Как получить данные в колбе из HTML-ввода с изменением URL сайта - PullRequest
0 голосов
/ 30 января 2019

У меня есть поле ввода в HTML, и я хочу получить данные, которые вводятся в это поле при нажатии кнопки.Я знаю, как получить данные из формы

ex =  request.form['example'];

Я хочу получить данные в колбе, как указано выше, но для поля ввода, которое выглядит так -

<div class="form-inline" id="inputDiv">
      <center>
        <input class="form-group" id="msg-content" autocomplete="off" placeholder="Send a message" />
        <button class="btn btn-lg" onclick="sendMsg()" id="sendBtn"><span class="glyphicon glyphicon-send"></span></button>
      </center>
</div>

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Если вы хотите, чтобы форма возвращала данные, вы обычно хотите поместить ее в элемент <form>.

Это говорит браузеру, что он должен возвращать внутренние элементы, когда форма отправляется кнопкой сатрибут type="submit".Вы должны указать входной атрибут name="example", чтобы получить его в колбе.Я не уверен, какой javascript вы вызываете с помощью функции sendMsg (), но я предполагаю, что элемент <form> является вашим лучшим решением.Примерно так:

<form action="/url/to/send/form" method="POST">
  <center>
    <input class="form-group" name="example" id="msg-content" autocomplete="off" placeholder="Send a message" />
    <button class="btn btn-lg" type="submit" id="sendBtn"><span class="glyphicon glyphicon-send"></span></button>
  </center>
</form>

Тогда вы сможете получить в колбе, как вы описали в своем посте.

0 голосов
/ 30 января 2019

Вам нужно обернуть свой HTML в форму, например,

<form id="inputDiv" method="post" action="/your_action">
  <!--- Your HTML input and button here --->
</form>

Примечание method="POST" и action="/your_action".

method="POST" указывает, что вы инициируете запрос HTTP Post на новую страницу.

action="/your_action" - это URL, на который вы хотите перенаправить.Вам придется заменить это своим URL.

Чтобы затронуть предыдущий ответ, я не рекомендую указывать "http://localhost:5000" в действии, поскольку 1. это не нужно и 2. это может быть неправильнов зависимости от того, как вы запускаете ваше приложение, например, если вы работаете на порте, который не 5000.

В коде python:

@app.route('/your_action', methods = ['POST'])
def yourRoute():

   #Your code here
0 голосов
/ 30 января 2019

Создайте свой маршрут

@app.route('/yayform',methods = ['POST', 'GET'])
def yayform():
   if request.method == 'POST':
      result = request.form
      return render_template("result.html",result = result)

Обязательно добавьте действие формы в ваш HTML,

<form action="http://localhost:5000/yayform" method="POST">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...