You can do something like this....
db.define_table('mytable',....)
def index():
form=SQLFORM(db.mytable,_id='source')
return dict(form=form)
def process():
form=SQLFORM(db.mytable)
if form.accepts(request.vars,formname=None): return 'form accepted'
return BEAUTIFY(form.errors)
and in default/index.html
{{extend 'layout.html'}}
{{=form}}
<div id='target'></div>
<script>
$(document).ready(function() {
var form=getElementById('source')
var inputs = [];
$(':input',form).each(function() { inputs.push(this.name + '=' + escape(this.value)); }); jQuery.ajax({
data: inputs.join('&'),
url: form.action,
timeout: 2000,
error: function() { console.log("Failed to submit"); },
success: function(r) { getElementById('target').innerHTML=r; }
});
return false;
})
</script>