我有一个存储在 Google App Engine 数据存储区中的值,该值是从下拉选择控件中选择的。
但是每次我加载 html 页面时,它都不会显示存储的数据存储区值。相反,它显示了未选择任何选项的原始下拉选择。
HTML:
<select name="items">
<option>Select</option>
</select>
JavaScript:
(function($) {
$.fn.changeType = function() {
var data = [{"user":"a","name":"Mr A"},
{"user":"b","name":"Miss B"},
{"user":"c","name":"Mrs C"}];
var tlist = '<option>Select<\/option>';
$.each(data, function(i,d){
tlist += '<option value="' + d.user + '">' + d.name + '<\/option>';
});
$("select", this).html(tlist);
};
})(jQuery);
主要.py:
# assume model s
user = db.StringProperty()
...
updated_user = self.request.get('items')
s.user = updated_user
s.put()
请注意,我只将用户(值)部分(例如 a)存储在数据存储中,但我希望拥有名称部分(例如 Mr A)。这可能吗?
非常感谢!
更新:抱歉不清楚。我正在使用 jinja2,其模板值 p 来自模型 s
<select name="items">
<option>{{ p.user }}</option>
</select>
并尝试将其放入 jQuery 中:
var tlist = '<option>{{ p.user }}<\/option>';
但是没有效果(嗯,它有点显示用户(价值)部分一瞬间)。本质上,我想问一下我在我的 HTML 和 jQuery 中将 Google App Engine 数据存储区的值放在什么位置和位置。谢谢。
更新 2:我将 JavaScript 更改为
(function($) {
$.fn.changeType = function() {
var data = [{"user":"a","name":"Mr A"},
{"user":"b","name":"Miss B"},
{"user":"c","name":"Mrs C"}];
var tselected = $("select option:selected").val();
var tlist = '<option>Select<\/option>';
$.each(data, function(i,d){
if (d.user === tselected)
tlist += '<option value="' + d.user + 'selected="selected">' + d.name + '<\/option>';
else
tlist += '<option value="' + d.user + '">' + d.name + '<\/option>';
});
$("select", this).html(tlist);
};
})(jQuery);
但 tselected 似乎不会返回当前选定的值。有任何想法吗?谢谢。