0

jqueryのform.js

jqueryのプラグインといえば、エフェクト系が多いのですがform.jsはその名の通りformの値を扱うの便利なプラグインです。

例えばこんなフォームがあったとして、
<form action="/hoge.php" name="search" method="GET" id="comSearchForm">
<table>
<tr>
<th>
フリーワード
</th>
<td>
<input name="word" type="text" value="">
</td>
</tr>
<tr>
<th>
生年月
</th>
<td>
<select name="start_year">
<option value="">----</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>年
<select name="start_month">
<option value="">--</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>月
</td>
</tr>
</table>
<div class="submit">
<input type="hidden" name="action" value="search" />
<input type="button" value=" 検 索 " onclick="searchCom();"/>
</div>
</form>

それぞれの値をajaxでphpに渡したい場合(検索なんかの時)に、form.jsを使えばフォームの値を一発でパラメータに変換してくれます。
queryString = $('#comSearchForm').formSerialize();

queryStringはこんな感じになります。
word=%E3%81%BB%E3%81%92&start_year=2006&start_month=02&action=search

0

lastpass

ブラウザで使うパスワード管理ソフトに、roboformを使ってたけど「macで使えない」「会社と自宅のが共有できない」という理由で代替のものをさがしてたところlastpassというのをみつけました。

macでも使え、セキュリティ的に不安は残るがオンラインでパスワードをできるってのがいい。
しかもfirefoxでもIEでも。

さっそくインストールして使っていたけど、フォームを判別する精度はroboformよりは落ちる。
そして何より気持ち悪いのが、ホームに設定してyahooのページのスクロールバーがいつも途中まで下がってる。
検索しても解決法は見つからず。

roboformとdropboxを使ってこんなことができないか試してみよう。

roboformが2年ほど前からmacのソフトウェアエンジニアを募集してるんだが、なかなかmac版roboformでませんね。

0

jqueryでフォームの値を扱う

jqueryでフォームの値を取得する時、毎回調べてしまうのでまとめとく。
ID指定してattrとかでもいけるんだろうけど、checkboxの時に統一できないんで。

HTML
<form name="form">
タイトル
<input type="text" name="title" id="title">
<br />
コメント
<input type="textarea" name="com" id="com"></textarea>
<br />
血液
<input type="radio" name="blood" id="blood_A" value="A" />A型
<input type="radio" name="blood" id="blood_B" value="B" />B型
<br />
趣味
<input type="checkbox" name="hobby" id="hobby_A" value="サッカー" />サッカー
<input type="checkbox" name="hobby" id="hobby_B" value="野球" />野球
<br />
都道府県
<select name="pref">
<option value="東京">東京</option>
<option value="大阪">大阪</option>
</select>
<input type="button" value=" クリック " onclick="show()" />
</form>

javascript
<script type="text/javascript"><!--
function show() {
$("#result").html('');
//name
$("#result").append($('input[@name=title]').val());
// textarea
$("#result").append($('input[@name=com]').val());
// radio
$("#result").append($('input[@name=blood]:checked').val());
// checkbox
$('input[@name=hobby]:checked').each(function(){
$("#result").append($(this).val());
});
// select
$("#result").append($('select[@name=pref]').val());
}
// --></script>

0

strtotime

何回やっても忘れるのがこれ。
function datereformat($val)
{
return date("Y年m月d日 H:i:s", strtotime($val));
}

$valにはmySQLのdatetime式(2008-07-05 12:30:50)な日付が入ってます。
それをいったんunixタイムに変換してdateしてるだけ。