Python web2pyajax值

Python web2pyajax值,python,ajax,web2py,Python,Ajax,Web2py,我的视图中有一个项目列表,我想为每个项目动态生成单独的页面。 我的看法是: {{for i in project_list:}} <ul> <input id="hello" type="hidden" value="{{response.write(i)}}" name="project_Name"> <li><a onclick="ajax('{{=URL('default', 'view_project')}}', ['project_N

我的视图中有一个项目列表,我想为每个项目动态生成单独的页面。 我的看法是:

{{for i in project_list:}} 
<ul>
  <input id="hello" type="hidden" value="{{response.write(i)}}" name="project_Name">
  <li><a onclick="ajax('{{=URL('default', 'view_project')}}', ['project_Name'], 'target');">View Project</a></li>
</ul>
{{pass}}
基本上,我想通过项目名称来识别每个项目

这是控制器的电流输出:

['Customizable logistical service-desk ', 'Extended contextually-based prod
uctivity ', 'Face-to-face modular circuit ', 'Multi-tiered stable intranet
', 'Quality-focused coherent budgetary management ']
为什么我会收到一个包含所有项目名称的数组作为输出? 我只想确定每个项目

任何建议都将不胜感激

您有:

ajax('{{=URL('default', 'view_project')}}', ['project_Name'], 'target')
您已经指定“project_Name”作为表单输入元素,从中提取要发布的值。但是,页面上有多个输入,所有输入都具有相同的名称。因此,Ajax函数将它们的所有值序列化到一个列表中,并发布整个列表

您可以给每个输入一个唯一的名称,但有一个更简单的解决方案。看起来您使用隐藏的
input
元素只是为了保存Ajax函数发送的值。不需要这样做——相反,您可以直接在Ajax URL中对值进行编码。因此,去掉
input
元素,并将
ajax
调用更改为:

ajax('{{=URL('default', 'view_project', vars=dict(project_name=i)}}', [], 'target')
你有:

ajax('{{=URL('default', 'view_project')}}', ['project_Name'], 'target')
您已经指定“project_Name”作为表单输入元素,从中提取要发布的值。但是,页面上有多个输入,所有输入都具有相同的名称。因此,Ajax函数将它们的所有值序列化到一个列表中,并发布整个列表

您可以给每个输入一个唯一的名称,但有一个更简单的解决方案。看起来您使用隐藏的
input
元素只是为了保存Ajax函数发送的值。不需要这样做——相反,您可以直接在Ajax URL中对值进行编码。因此,去掉
input
元素,并将
ajax
调用更改为:

ajax('{{=URL('default', 'view_project', vars=dict(project_name=i)}}', [], 'target')

web2py ajax函数向服务器发送html元素的值,并在函数的第二个参数(“project_name”)中传递name属性,但如果有多个字段具有相同的名称,它将发送所有字段的值

因此,使用循环创建许多同名字段,ajax函数将所有值发送到服务器

您可以解决在每个字段名(以及其onclick属性上的名称)中添加count变量的问题:

{{count=1}
{{对于项目_列表中的i:}
  • 视图项目
{{count+=1} {{pass}}

或者使用更干净的解决方案,在JQuery ajax函数中,web2py ajax函数向服务器发送html元素的值,并在函数的第二个参数中传递name属性(“在您的例子中是project_name”),但如果有多个字段具有相同的名称,它将发送所有字段的值

因此,使用循环创建许多同名字段,ajax函数将所有值发送到服务器

您可以解决在每个字段名(以及其onclick属性上的名称)中添加count变量的问题:

{{count=1}
{{对于项目_列表中的i:}
  • 视图项目
{{count+=1} {{pass}}

或者在JQuery ajax函数中使用更干净的解决方案

我不清楚你想要实现什么,你能不能更明确地说明你想要的行为?嘿!我试图使用AJAX传递单个值,但它传递的是一个数组。因此,与其使用
[“可定制后勤服务台”、“扩展的基于上下文的生产能力”、“面对面模块化电路”、“多层稳定的内部网”、“注重质量的连贯预算管理”]
我只想:
可定制后勤服务台
我不清楚您想要实现什么,你能不能更清楚地说明你想要的行为?嘿!我试图使用AJAX传递单个值,但它传递的是一个数组。因此,与其使用
[“可定制的后勤服务台”、“扩展的基于上下文的生产能力”、“面对面模块化电路”、“多层稳定的内部网”、“以质量为中心的连贯预算管理”]
我只想:
可定制的后勤服务台