Раскрывающийся список HTML с Google App Engine - PullRequest
1 голос
/ 12 ноября 2010

Я создаю веб-приложение Google App Engine, написанное на Python, и я хотел бы создать раскрывающийся список, в котором отображаются различные значения, соответствующие страницам книги, из которых пользователь может выбирать.Я хотел бы, чтобы действие раскрывающегося списка состояло в том, чтобы направить пользователя на страницу, соответствующую этой ссылке:

<a href='/viewpage/{{bookpage.key}}'>{{ bookpage.page }} </a>

Сущность "bookpage" передается в html

Спасибо!

Дэвид

Ответы [ 3 ]

1 голос
/ 12 ноября 2010

Используйте Меню перехода . Здесь - довольно прямолинейная реализация.

По сути, вы просто добавите немного JavaScript, и вместо написания тега вы напишите опцию:

<option value='/viewpage/{{bookpage.key}}'>{{ bookpage.page }} </option>
0 голосов
/ 12 ноября 2010

Я не знаком с google-app-engine, но следующий javascript, кажется, делает то, что вы хотите. Питон может генерировать переменные массива на стороне сервера, и тогда все остальное будет работать правильно. Я включил жестко закодированные массивы, чтобы вы могли видеть, что происходит, но вы можете заменить массивы на код Python (при условии, что bookpage является своего рода словарем):

i = 0
for bp in bookpage.keys():
    print("mysites["+str(i)+"] = "+ bookpage[bp])+";"
    print("sitenames["+str(i)+"] = "+sitenames[bp])+";"
    i+=1

<html>
<body>
<script type="text/javascript">
var mysites= new Array();
    mysites[0] = "http://www.google.com";   //Generate this line with python
    mysites[1] = "http://www.bing.com";     //Generate this line with python
    mysites[2] = "http://www.yahoo.com"; //Generate this line with python
var sitenames = new Array();
    sitenames[0] = "Google";       //Generate this line with python
    sitenames[1] = "Bing";           //Generate this line with python
    sitenames[2] = "Yahoo";       //Generate this line with python
function changeLink(){
    var index = document.getElementById("theselect").selectedIndex
document.getElementById("thelink").innerHTML=index;
    var newlink = mysites[index];
    var newstring = sitenames[index];
    document.getElementById("thelink").href=newlink;
    document.getElementById("thelink").innerHTML=sitenames[index];
}
</script>
<select id="theselect" onclick="changeLink()">
  <option>Google</option>
  <option>Bing</option>
  <option>Yahoo</option>
</select>
 <br />
<a id="thelink" href="http://www.google.com" > Google </a>
</body>
</html>

Нажатие на поле параметров вызывает функцию changeLink (), которая затем изменяет ссылку и внутренний html тега.

0 голосов
/ 12 ноября 2010

А как же <option value='/viewpage/{{bookpage.key.id}}'>{{bookpage.page}}</option>?

Надеюсь, это не глупый ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...