ドロップダウン選択コントロールから選択した値をGoogleAppEngineデータストアに保存しています。
しかし、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);
main.py:
# assume model s
user = db.StringProperty()
...
updated_user = self.request.get('items')
s.user = updated_user
s.put()
ユーザー(値)の部分(例:a)のみをデータストアに保存しますが、名前の部分(例:A氏)が必要であることに注意してください。これは可能ですか?
どうもありがとう!
更新:明確ではないことをお詫び申し上げます。モデルsから描画するテンプレート値pでjinja2を使用していました
<select name="items">
<option>{{ p.user }}</option>
</select>
また、これをjQueryに入れてみました。
var tlist = '<option>{{ p.user }}<\/option>';
しかし、効果はありませんでした(まあ、それはユーザー(値)の部分を一瞬表示します)。基本的に、HTMLとjQueryにGoogleAppEngineデータストアの値をどこに何を入れるのかを尋ねたいと思います。ありがとう。
アップデート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は、現在選択されている値を返すようには見えません。何か案は?ありがとう。