Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在GoogleAppEngine中使用JavaScript和服务器端Python代码动态生成客户端HTML表单控件_Javascript_Python_Google App Engine - Fatal编程技术网

在GoogleAppEngine中使用JavaScript和服务器端Python代码动态生成客户端HTML表单控件

在GoogleAppEngine中使用JavaScript和服务器端Python代码动态生成客户端HTML表单控件,javascript,python,google-app-engine,Javascript,Python,Google App Engine,我有以下使用Jinja2模板引擎的客户端前端HTML: {% for record in result %} <textarea name="remark">{{ record.remark }}</textarea> <input type="submit" name="approve" value="Approve" /> {% endfor %} 但是,在某些情况下,更新的记录不是与单击的提交按钮对应的记录(例如,如果用户单击记录1提交

我有以下使用Jinja2模板引擎的客户端前端HTML:

{% for record in result %}
    <textarea name="remark">{{ record.remark }}</textarea>
    <input type="submit" name="approve" value="Approve" />
{% endfor %}
但是,在某些情况下,更新的记录不是与单击的提交按钮对应的记录(例如,如果用户单击记录1提交,则记录2备注会更新,但不会更新记录1)

我推测这是由于重复的属性名注释造成的。我可以使用JavaScript/jQuery生成不同的属性名。问题是,如何编写后端Python以获得JavaScript生成的(可变数量的)名称


谢谢。

已编辑

在模板内用于循环使用:循环的当前迭代

然后:

我没有测试就写了这个。可能不起作用,但可以给你一个提示


新的[更好的]解决方案

将每对文本区域和输入放入表单中:

{% for record in result %}
    <form>
        <textarea name="remark">{{ record.remark }}</textarea>
        <input type="submit" name="approve" value="Approve" />
   </form>
{% endfor %}
{%用于结果%中的记录]
{{record.remark}
{%endfor%}

非常感谢您的回答。代码看起来不错。但是,提交按钮的标签现在将显示1、2、3,而不是批准?如果我将HTML改为name=“approve{{{loop.index}}”,是否有一种有效的方法来相应地更改后端代码?谢谢
{% for record in result %}
<textarea name="remark{{ loop.index }}">{{ record.remark }}</textarea>
<input type="submit" name="approve" value="{{ loop.index }}" />
{% endfor %}
<textarea name="remark1">first record remark</textarea>
<input type="submit" name="approve" value="1" />
<textarea name="remark2">second record remark</textarea>
<input type="submit" name="approve" value="2" />
<textarea name="remark2">third record remark</textarea>
<input type="submit" name="approve" value="3" />
def post(self):
    if self.request.get('approve'):
        updated_remark = self.request.get('remark' + self.request.get('approve'))
        record.remark = db.Text(updated_remark)
        record.put()
{% for record in result %}
    <form>
        <textarea name="remark">{{ record.remark }}</textarea>
        <input type="submit" name="approve" value="Approve" />
   </form>
{% endfor %}