如何从选择菜单获取数据到后端/服务器

Posted

技术标签:

【中文标题】如何从选择菜单获取数据到后端/服务器【英文标题】:How to get data from selection menu to backend/sever 【发布时间】:2012-08-01 22:26:33 【问题描述】:

我创建了一个包含 5 个选项的下拉菜单。当用户选择一个选项并按下提交按钮时,如何将该“选择”传输到 Django 中的后端/服务器?

After that, when the value of the selection reaches the backend, I intend to use the value to create another form.有 5 种形式可供选择(每种选择一种),出现的形式类型将取决于原始选择的值。

这是我目前所拥有的,但我收到错误消息“在 QueryDict 中找不到键‘选择’:”

这是 html 文件:

<div id = "f1" style="display:none">
  <form name= "form1" action='/products/ action /' method='get'>
    <p class="choice-header"> Product: </p>
    <select id = "g1" title="selection" onchange = "showForm()">
      <option value = "0">--</option>
      <option value = "1">Form 1</option>
      <option value = "2">Form 2</option>
      <option value = "3">Form 3</option>
      <option value = "4">Form 4</option>
      <option value = "5">Form 5</option>
    </select>
    <div id= "b1" style="display:none">
      <input class="button" type=submit value=" button ">
    </div>
  </form>
</div>

这是 Django views.py 文件

def new2(request):
  form_no = request.GET["selection"]

  if form_no == 1:
    form_to = Form1()
  c = RequestContext(request, 
    'action': 'add/2',
    'button': 'Add', 
    'form': form_to,
  )
  return render_to_response('links/add.html', c)

感谢您的帮助!

【问题讨论】:

【参考方案1】:

这不是真正的 Django 问题。你只是没有给你的select 元素一个name 属性。

<select id="g1" name="selection">

【讨论】:

哇,成功了!但现在我得到一个新错误:在赋值之前引用了局部变量 'form_to'。有什么建议?感谢您的帮助,我是新手! 因为form_no 不是1,它是"1" - 一个字符串,而不是一个整数。【参考方案2】:

这应该可以帮助您:django - collecting data from a HTML <select>。

基本上,您需要在 HTML 中的 select 元素上命名,然后您可以通过以下方式访问它:

request.GET["nameOfYourAwesomeSelectList"]

编辑:刚刚注意到您使用的是 GET 方法。您使用 GET 将表单数据发送到服务器是否有原因?纯粹的好奇心。

编辑 2:对于您关于 form_to 的错误,请注意您仅在所选项目为 1 时才对其进行初始化?因此,当您选择一个值不是 1 的项目时,form_to 永远不会初始化,因此当您创建 RequestContext 时,它会生气。您需要始终初始化它,form_to,或者在 form_to 为空时更改创建 RequestContext 的方式。

【讨论】:

我要做的是创建一个两步过程。在第一步中,用户从下拉菜单中选择“产品类型”。在步骤 2 中,基于之前的选择,我将生成一个与用户选择的产品类型相对应的表单。我目前实现它的方式是步骤 1 中的每个产品类型选项对应一个值(1、2、3...)。我正在使用 GET 方法基本上找到该数字,并基于该数字,我想生成与该产品类型对应的表单。你认为这可行吗? 知道了!问题是我将“form_no == 1”作为整数引用,而来自 GET 的数据是字符串。感谢您的帮助!

以上是关于如何从选择菜单获取数据到后端/服务器的主要内容,如果未能解决你的问题,请参考以下文章

后端传送图片到前端

如何使用 jquery 将数据从本地存储发送到后端

如何通过 MDC 将从 JWT 获取的用户 ID 添加到后端日志?

如何将数据从 ydn-db Web 应用程序同步到后端服务器?

Xamarin.iOS如何在注册到后端以获取推送通知后获取安装ID

如何自动获取用户的地理位置值并将其作为 POST 请求发送到后端