構成は、
index.html
sample.js
sample.py
(lib/jquery/jquery-1.3.2.js)
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery + Python</title> </head> <body> <h1>jQuery + Python</h1> <form id="hoge"> <input type="text" name="foo" /> <input type="text" name="bar" /> <input type="text" name="baz" /> </form> <a id="foo" href="#">show</a> <a id="bar" href="#">clear</a> <div id="baz"></div> <script type="text/javascript" src="lib/jquery/jquery-1.3.2.js"></script> <script type="text/javascript" src="sample.js"></script> </body> </html>
sample.js
p2jはパラメータからJSON形式に変換する関数。どこかのページに掲載されていたのですが、失念してしまいました。すいません。var $j = jQuery.noConflict(); function p2j(d) { if (d.constructor != Array) { return d; } var data={}; for(var i=0;i<d.length;i++) { if (typeof data[d[i].name] != 'undefined') { if (data[d[i].name].constructor!= Array) { data[d[i].name]=[data[d[i].name],d[i].value]; } else { data[d[i].name].push(d[i].value); } } else { data[d[i].name]=d[i].value; } } return data; }; $j(document).ready(function(){ $j('#foo') .click(function() { // クエリ var query = $j(":input").serializeArray(); console.log(p2j(query)); // GETリクエスト $j.get('sample.py', query, function(text) { // 結果の処理 var json = JSON.parse(text); var html = ""; for (var i in json) { html += json[i].key + ':' + json[i].value + ' '; } $j('#baz').html(html); }); return false; }); $j('#bar') .click(function (){ $j('#baz').html(''); }); });
sample.py
JSON形式にするにはjsonモジュールかsimplejsonモジュールがいいかもしれません。#!/usr/bin/env python # -*- coding: utf-8 -*- import cgi import cgitb; cgitb.enable() import json print "Content-type: text/javascript; charset=utf-8" print form = cgi.FieldStorage() foo = form.getfirst("foo", "") bar = form.getfirst("bar", "") baz = form.getfirst("baz", "") print json.dumps([{'key':'foo','value':foo}, {'key':'bar','value':bar}, {'key':'baz','value':baz}])
No comments:
Post a Comment