I have the following function:
def index():
form=SQLFORM.factory(
Field('word',length=128,requires=IS_NOT_EMPTY()),
Field('locality',length=64,requires=IS_NOT_EMPTY()),separator=False)
rows=[]
if form.accepts(request.vars,session,keepvalues=True):
rows=db().select()
elif form.errors:
response.flash=response.flash_searcherror
else:
response.flash=response.flash_searchform
return dict(form=form,rows=rows)
Field 'word' should be a multiselect, Field 'locality' an
autocomplete:
def keywords_multiselect():
rows=db(db.NetworkKeyword.networkID==session.hubnetworkID)\
.select(db.NetworkKeyword.word,distinct=True,orderby=db.NetworkKeyword.word).as_list()
result=[r['word']for r in rows]
return response.json(result)
def locality_autocomplete():
rows=db((db.NodeKeyword.word==???)&(db.NodeKeyword.nodeID==db.Address.nodeID)&
\
(db.Address.locality.like(request.vars.term+'%')))\
.select(db.Address.locality,distinct=True,orderby=db.Address.locality).as_list()
result=[r['locality']for r in rows]
return response.json(result)
In the view I have the following code:
<script type="text/javascript">
$(document).ready(function(){
$("#word").multiselect();
});
$(function() {
$("#no_table_locality").autocomplete({
source: "{{=URL('hubaddressbook', 'locality_autocomplete')}}",
minLength: 2
});
});
</script>
I had a look at the list:reference example in chapter 6 of the book to
get the options for the multiselect, however, in my case the options
are the result of a query. How do I get the result of
keywords_multiselect(): function in the word Field multiselect?
When the user selects a word, that word should replace the ??? in the
locality_autocomplete(): function. How would I get that to work?
Kind regards,
Annet.