ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

プログラミング

2種類のデータを検索する方法

一般的な郵便番号と、大手の会社に割り当てられれる郵便番号の両方を検索しなければならなくなりました。 以下の2ページからダウンロードしたCSVファイルが検索の対象となります。 読み仮名データの促音・拗音を小書きで表記するもの - zip圧縮形式 日本郵便…

表示の組み立ては、サーバーサイドで行うか、クライアントサイドで行うか

最近、 「選択肢によってWebサイトの要素が切り替わり(この部分は、JavaScriptで制御)、次へボタンを押すと確認画面、確認画面で戻るボタンを押すと、元の画面だけれど、選択した状態=次へボタンを押す前の状態」 が表示されるWebサイトの、表示の作り方とし…

英語所属名が登録できない原因

お客さんから、英語の所属名が登録できないとの問い合わせがありました。現象登録できない英語の所属名をメールで貰えたので試してみると、確かに登録できません。 最初は文字列が長すぎて登録できないのかと思いましたが、入力チェックの段階でエラーになっ…

人数は何人と数えるの?

お客さんからの登録システム開発依頼で、人数を計算して欲しいようなことが書いてありました。人数の条件登録時の条件は、メールの文面からすると入力として ・代表者情報 ・条件Aに該当する方の人数 ・条件Bに該当する方の人数 があり、チェックは ・条件…

文字コードはいろいろ悩まされます

以前作られたWebページのエンコードがEUC-JPで、データベースの文字コードもECU-JPに設定されています。現象お客さんから画面上、文字が化けているという連絡を貰ったので確認すると、機種依存文字の「髙」が文字化けしていました。「髙」が入力されたのは、…

JavaScript:jQuery:jQueryのバージョンによって違う動作

一覧表のチェックボックス全てに、一括でチェックを入れる全選択ボタンと、一括でチェックを外す全解除ボタンを作成しました。 処理のJavaScriptは、以前のソースコードを流用して、以下のコードで動作確認をしました。 $('#all_select').click(function() {…

ボタンを画像にすると、Internet Explorer 8では、期待通りの動作をしない

formタグ内のボタンが、最終的には画像にする予定で、開発初期は <input type='submit' name='next' id='next' value='next'> として、submitのボタンとしていました。 予定通りの動作をするようになったので、見た目の調整の一環として、ボタンを予定通り画像にするために、 <input type='image' name='next' id='next' src='./next.jpg' value='next'> としました。 現象 Google Chromeでは動…

JavaScript:jQuery:onLoadの代わりの記述方法

jQueryを便利に使っていますが、bodyタグのonLoadのタイミングの処理は、そのまま書くしかないと思っていました。 あるとき調べてみたら、 jQuery.event.add(window, "load", function() { func_cnt(); }); とすれば、onLoadと同じタイミングで処理できるこ…

PHP:日付の扱いを間違っていても、目的は果たしていた例

以前作られたプログラムを修正するために、期日を過ぎたので入力画面を表示しないようになっていたのを、表示するように設定しても、表示されません。 原因調査 以下のコードで期日が過ぎているか判定していました。 $endDate = date('U',strtotime('2014-01…

PHP:defineを使わず変数を使っているプログラム

何年か前に作成されたプログラムの修正をしています。 共通ファイルに変数で固定値が書かれていて、変数を使って処理しています。 $systemId = 1; 他の書き方 固定値を書くなら、defineを使う方法があります。 define("SYSTEM_ID","1"); どちらでも適切にコ…

Internet Explorer で■(しかく)が小さく表示される現象

文字の前に ■項目1 ■項目2 というように■(しかく)を表示したら、Internet Explorerだけ小さく表示されました。 dlタグ/dtタグを使っていて、その影響で小さく表示されるなら、他のブラウザでも同じことが発生するのでしょうが、他のブラウザでは小さくな…

PHP:3桁になると正常に動作しないプログラム

0埋めされた文字列を文字列型のカラムから値を取得して、連番を生成するために、以下のようなコードが書かれていました。 $sql = "SELECT max(no) FROM table "; $result = pg_query($pgsql, $sql); $no = pg_fetch_result($result,0,0); $newno = sprintf("…

JavaScript:jQuery:name属性よりclass属性を使ったほうが、楽にコーディングできる場合

既存のソースコードで、inputタグのname属性が配列になっていて、1始まりで使われているソースコードがありました。 後続の処理もそれに対応していましたが、jQueryでname属性を使って処理を書こうと判断したために、name属性を変えて、実質0から始まるよう…

JavaScript:backgroundColorの設定でエラーが発生した場合の対処方法

以下のJavaScriptで、指定した要素に背景色を設定していました。 var element= document.getElementById('upfile'); element.style.backgroundColor = 'lightgray'; これで問題はないという認識でいましたが、ブラウザによってはエラーが出ていたので、jQuer…

JavaScript:非表示にしたtrタグを表示する際に気をつける点

ラジオボタンやセレクトボックスの選択によって、表示/非表示を切り替えたいと要望されることがあります。 非表示にするは、 document.getElementById('tag').style.display = "none" を設定すればできます。 逆に、表示するには、 document.getElementById…

JavaScript:セレクトボックスで何番目が選ばれたか知る方法

selectタグに設定する、optionタグのvalue要素に適切な数値を設定しておけばわかりますが、設定できない場合はどうすればいいか調べました。 調べた結果 selectedIndex というのがあるので、 var index = jQuery("#selectbox").prop("selectedIndex"); とす…

ひらがなチェックでつまずいたこと

人名のふりがなとして、ひらがなが入力されているか、JavaScriptやPHPでチェックしています。 photo credit: fhisa via photopin cc 「ー(長音)」がひらがなと判定されない 正規表現でチェックしていて、PHPの場合、文字コードがECU-JPで作られたページで…

Google ChromeでjQueryが呼び込まれない現象への対処

テストのためにコピーしたサイトのボタンをクリックしたら動作しませんでした。 Internet Explorerでは動作していますが、Google Chromeでは動作していません。 photo credit: danorbit. via photopin cc 調査 JavaScriptが動作しなくなったのかと、デバッガ…

PHP:文字が化けて保存できない現象への対処

以前作られたプログラムをベースに、部分的に修正を加えて利用したら、データベースへの登録時にエンコーディングできないエラーが発生しました。 そのときに表示されたエラーメッセージです。 Query failed: ERROR: invalid byte sequence for encoding "EU…

PHP:ファイルダウンロードで予想外の動作

CSVファイルをダウンロードするために、以下の記事のようなコードを利用して、ファイルをダウンロードできるようにしました。 PHPでファイルをDLさせる際のPHPコード例:phpspot開発日誌 このコードで僕の環境で試したところ、予定通りのファイルがダウンロー…

PHP:TCPDF:画像を指定するために試したこと

PEARのImage_Barcodeを使って作成したバーコードの画像を、TCPDFで作成するPDFに挿入して、バーコード付きPDFを作成することになり、以前作ったプログラムをベースに作成しました。 画像の位置調整ができない 試してみると、バーコードが左に寄りすぎている…

PHP:PEAR:バーコード Code39の生成を試してみました

以前、PEARのImage_Barcodeを使って、バーコード JAN13生成の失敗談を書きました。 PHP:PEAR:Image_Barcodeを使ってバーコード生成で間違えていたこと - ソフトウェア開発者の日常 試すにあたり方針を決める 今回、Code39での生成を指定されたので、 Code39…

Internet Explorer 7で起きた現象

自動アップデートで、てっきりInternet Explorer 8になっていると思ってました。 photo credit: yum9me via photopin cc ボタンが押せない? 最近作ったシステムをテストしていたお客さんから、「確定ボタンが押せない。戻るボタンは押せる」と連絡がありま…

文字列チェックでちょっと悩みました

JavaScriptで、パスワードとして入力された文字が、 英小文字、英大文字、数字のみが使われていること。 英小文字、英大文字、数字が使われていること。 8文字以上であること。 という要件を全て満たしているかチェックしなければならなくなり、どうい風に書…

Internet Explorerだけでおきる不可思議な現象

原因不明ですが、再現しないようにはなりました。 photo credit: yum9me via photopin cc あるWebサイトで、tableの中のセル内にdivタグをいれ、divタグの中にulを入れています。 divタグの中にulタグを入れているのを1セットとすると、状況によって複数セッ…

データが壊れる現象への対処

理由が理解できていませんが、対処をしています。 photo credit: pedro mg via photopin cc 上手く動作しない 修正したプログラムをテストしていると、5回ループして表示する筈が、4回しか表示していませんでした。 回数は、データベースを照会した結果のレ…

それで本当に大丈夫なのか?

心配だったので、修正してもらいました。 以前、ファイルを上書きしてしまうトラブルがあったので、気にするようにしています。 ファイルを上書きしてしまうトラブル - ソフトウェア開発者の日常 過去のプログラムを一部修正して利用する機会があり、ファイ…

ハードコーディングは止めよう

時間が無くて、仕方ないというときもあります。 photo credit: naus3a01 via photopin cc 先日の記事で、久しぶりにさわるシステムがあると書きました。 過去の記録を参照して、久しぶりの作業をスムーズに進める - ソフトウェア開発者の日常 記録どおりに作…

ファイルを上書きしてしまうトラブル

トラブル対応はエネルギーを余分に使います。 photo credit: Kasaa via photopin cc トラブル発生 部下からファイルが上書きされたのは、なぜなんでしょうと相談を受けて、どんな仕組みを作ったのか確認してみました。 作られていたのは、 アップロードされ…

実行環境のバージョン違いでエラーが出たので対処しました

バージョンアップで、チェックが厳しくなっていたようです。 photo credit: YanivG via photopin cc 新しい実行環境でのテスト PHP 5.4.7の環境で、以前作られたプログラムを動かしたら、2種類のメッセージ表示されました。 「Strict Standards: Redefining …