2007-03-30
checkboxやselectを同期させるJavascriptって
先日inputなどが所属しているformを調べていたのはcheckboxやselectを同期させるJavascriptを書くためだったのですが、「formに所属してるinput要素をピックアップしたほうが早いじゃん!」って事に気づいて*1結局使わなかったという。
ところで、こんな感じだと重複してデータを送信しちゃうしradioで同期ができないし、こんな風だとテーブル組には使えないんだけど*2、うまい方法があったりするんでしょうかね。
preg_replace()をPerlと同じつもりで使ってハマる。
相変わらずピンポイントでハマるPHPですが。
Perlで
$date =~ s#\d{2,4}[/-](\d{1,2})[/-](\d{1,2})#sprintf("%d/%d", $1, $2)#e;
$date = preg_replace('#\d{2,4}[/-](\d{1,2})[/-](\d{1,2})#e', 'sprintf("%d/%d", $1, $2)', $date);
?>
――と書いたのですが、うまく動かないんですな。正確には、ほとんどのデータはうまく処理されてるのに「2007/08/04」が「8/4」にならずに「0/4」になっていたんですよ。
最初は理由が分からずにしばらく悩んでいたのですが、途中で「sprintf("%d/%d", $1, $2)」が「sprintf("%d/%d", 08, 04)」に変換されてからPHPとして実行されてることに気づき修正したのですが*3、これってPHPを使っている人的には問題ないんでしょうかね*4。