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

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

プログラミング

JavaScript:ラジオボタンの値を取得してswitch文で分岐するときに少し悩む

jQueryで選択されているラジオボタンの値を取得して、switch文で処理を分岐させようとしました。 ラジオボタンのvalueには、数字を割り当てていたので以下のようにswitch文を書き、ラジオボタンをクリックしましたが、どちらのcaseにも該当せず処理がされま…

JavaScript:テキストボックスに値を入れてもchangeイベントが発生しない場合の対処

JavaScriptというかjQueryでテキストボックスに値を代入すると、代入されたら内容が変化するのでchangeイベントが発生すると思っていました。 $("input[name='abc']").val("テスト"); 実際には発生しません。内容が変化したらchangeイベントが発生しないとコ…

JavaScript:別ウィンドウ内のiframeで選択した内容を親ウィンドウのテキストボックスに設定する

Webサイトで、選択ボタンをクリックしたら、別ウィンドウを表示し、別ウィンドウで検索を行うと別ウィンドウ内のiframeに検索結果を表示するようにしました。 iframeの検索結果をクリックして、クリックした値を、別ウィンドウの親ウィンドウにあたるWebサイ…

PHP:セレクトボックスの選択の重複のチェック方法

セレクトボックスが4個ある画面があります。 4個のセレクトボックスには全て同じ選択肢が設定されています。 同じ選択肢を選ばれていないか、チェックが必要です。 重複を除去して、配列の数が異なっていれば、重複して選択していると判定 if文で1個目の選択…

複数人が複数の参加の申し込みするシステムで発生したバグ

1回の申し込みで、複数人が複数の講義への参加の申し込みを同時に受け付けるシステムがあります。 管理用の画面から、参加する講義を追加しようとしたら、思った通りに追加ができませんでした。 具体的な現象 参加を予定していなかった講義に参加をしたくな…

どのページを表示した際に、新規登録と修正・確認のどちらで動作しているのかのフラグを設定するか

新規登録と修正・確認のどちらで動作しているのかフラグをセッション変数に設定したくなりました。新規登録の場合は、 初期ページ→説明ページ→入力ページ→入力確認ページ→登録完了ページ という順番でページは遷移します。修正・確認の場合は、 初期ページ→…

JavaScript:val()メソッドを使わないでラジオボタンがチェックされているか判定する方法はないのか?

以前の記事にも書きましたが、JavaScriptでラジオボタンが選ばれているか取得するには、jQueryを使う場合、 if (!$("input:radio[name='check1']:checked").val()) { alert("チェックされていません"); } や var isCheck1 = $("input:radio[name='check1']:c…

適切な設計およびコーディングをすることで、変更がしやすくなる

データをデータベースから取り出してCSV形式で保存するプログラムを作成しています。 データをデータベースに登録されたときに、同時に登録されたファイルも合わせてコピーもしています。これまでの処理の流れ特に要望がなかったので、 1.データベースからデ…

類似システムの同時利用対策の誤った方法

昨日類似システムを同時利用された場合の対処方法を書きました。 ajya.hatenablog.jp僕はこの方法で十分だと考えていましたが、入力画面を表示したときに、システム毎に異なる値を割り振るだけではなく、処理を追加するパターンを見ました。 session_start()…

類似システムを同時利用された場合の対処

類似のシステムを同時に利用された場合、以下の手順で現象が発生しました。 一方の入力画面で入力された値を、確認画面でセッション変数に格納する。 もう一方のシステムの入力画面を表示する。 もう一方のシステムの入力画面は、確認画面から戻ったときにセ…

同じコードが2重に書かれていたために時間を無駄にしました

システムを流用して、新しいシステムを作成しました。 ログイン画面からログインすると、入力画面が表示されます。 入力画面の配色を変えようと、該当箇所を修正しましたが、色が変わりません。 photo credit: Manual XSS via photopin (license)なぜ色が変…

マジックナンバーは廃止すべき

プログラム上のマジックナンバーはろくなことがないですね。 ウィキペディアにまで書かれていました。 マジックナンバー (プログラム) - Wikipedia photo credit: return undefined; via photopin (license)なぜそう思ったのか僕が作っていない既存のプログ…

JavaScript:ラジオボタンがチェックされているか判定する方法

jQueryを使える場合 if (!$("input:radio[name='check1']:checked").val()) { alert("チェックされていません"); } で判定できます。 jQueryを使えない場合 var i; var flg = false; for (i = 0; i < document.form1.elements['check1'].length; i++) { if (…

MacでのFlashの動作を修正できました

取り扱える値の範囲内だったら、処理に使用するように修正して対処しました。 photo credit: tripu via photopin cc正しく動作するように修正したはずが、Webサーバーが違うためか、期待通りの動作をしない現象が発生しました。 まだMacでのFlashの動作に悩…

まだMacでのFlashの動作に悩み中

動作する環境としない環境がある理由が理解できていません。 photo credit: xelipe via photopin cc以前、Flashで未定義変数をチェックしていなかったために、Macではある機能が動作していなかったと書きました。 WindowsとMacでAdobe Flashの挙動が違って四…

WindowsとMacでAdobe Flashの挙動が違って四苦八苦しました

わかってみれば、変数のチェックを行っていなかったことと、異なる環境での動作確認をしていなかったことが原因でした。 photo credit: buggolo via photopin cc Macで動作しないWindowsのChromeで動作を確認し、WindowsのInternet Explorerでも動作を確認し…

JavaScript:同一クラスを割り当てたチェックボックスを択一選択にするJavaScriptが正常に動かなくなっていて焦りました

複数から1つだけ選べる択一選択にするなら、ラジオボタンにすべきです。 選択した後で、選択しないということもあるため、チェックボックスになっています。チェックボックスで択一選択にする方法JavaScriptで、チェックされるたびに、同一クラスを割り当て…

JavaScript:jQuery:参加者のチェックボックスのON/OFFで、同行者のチェックボックスがあるセルの背景色を変更する方法

昨日の記事でチェックボックスの有効/無効の切り替え方を書きました。 JavaScript:jQuery:参加者のチェックボックスのON/OFFで、同行者のチェックボックスの有効/無効を切り替える方法 - ソフトウェア開発者の日常 JavaScript:jQuery:参加者のチェックボ…

JavaScript:jQuery:参加者のチェックボックスのON/OFFで、同行者のチェックボックスの有効/無効を切り替える方法

代表の参加者が選んだセミナーのみ、同行者が参加できるようにシステムを作成して欲しいと要望がありました。入力する画面では制限をもうけず、入力内容を確認する画面で判定して表示することも考えましたが、手間がかかります。 入力画面で代表の参加者が選…

決済とデータベース登録の順序を考慮する

正常なら問題ありませんが、エラーが発生した場合を考えると、処理する順番が気になります。 photo credit: tec_estromberg via photopin ccECサイトでは、 名前や住所、購入する物の他にクレジットカードの情報を入力 入力内容の確認 決済とデータベースへ…

データが壊れる現象に再び遭遇

同じ対処で処理できるようになりました。 photo credit: gnizr via photopin cc200回以上ループするはずが2回目で止まる部下からループが2回目で止まってしまい原因がわからないと相談がありました。 動作を見ると、確かに2回目で止まってしまっています。 …

桁数揃えで予定外の動作

C#のプログラムで、複数の文字列をそれぞれ指定の桁数にそろえて、連結する仕様がありました。検索したら、文字列にはPadRightメソッドがあったので、これを使うことにしました。 data1.PadRight(6, ' ');と記述するだけで、全体が6文字になるように末尾にス…

QRコードはカラーでも作れるんですね

白黒以外見た覚えがないです。 photo credit: pixage via photopin ccC#のプログラムでQRコードを出力しなければならなくなったので調べると、DotNetBarcodeというライブラリを見つけました。 QRCode対応完全無料ライブラリDotNetBarcodeの詳細情報 : Vector…

似た作り方をしていると、ソースコードの流用が楽にできます

ログイン画面を簡単に用意できました。 初回はユーザー登録が必要で、2回目以降はログインしてもらうと1回目の情報を表示して、入力をなるべく減らそうという考えのシステムを作成しています。 初回登録時の動作が大体できてきたので、2回目以降のためのログ…

シリアル型のカラムに不適切な値を設定したために発生した現象

手動で割り振るにしても、既存の値に近い値にしていれば、見過ごしていたかもしれません。 photo credit: jimgris via photopin cc現象正しく登録番号を割り振っていたシステムが、途中から同じ番号を割り振るようになっていました。原因プログラムとデータ…

プレースホルダを使ってみて、使いにくく感じました

以前この記事を読んで、使うのは止めておいた方がいいんだなと覚えてはいました。 入力フォームのプレースホルダを使ってはいけない – U-Site既存のシステムを改造することになり、入力画面を見るとプレースホルダが使われていました。 ラベルはついていませ…

新たなデータを作ることによって発覚したバグ

わかれば簡単な内容でした。 photo credit: Andréia via photopin cc開発環境構築PHPとSQL Serverで構築された既存のWebシステムを改造する案件で、デモ環境をコピーして開発をしていました。 なるべく開発環境構築の手間をかけたくなかったので、プログラム…

再読み込みボタンを押されたときにPOSTメソッドを再処理させない方法

POSTメソッドで渡された値を使って登録処理を行う画面で、処理が終わった後にブラウザの再読み込みボタンを押されると、同一処理が繰り返されて、2重登録が発生しました。 開発中のデータベースへの反映やメール送信の動作確認をするには便利ですが、本番で…

一見して評価の順序がわかりずらかったプログラムの書き方

優先順位をちゃんと覚えていれば、わかる内容でした。 photo credit: Kaptain Kobold via photopin ccある機能を移植するためにPHPのプログラムを確認したら、 if ($param1 < $param2 && $param3 == TRUE) { echo '1'; } else { echo '2'; } と書かれている…

JavaScriptで単語数カウント

現在は文字数を1秒ごとに取得している部分を、単語数に変更したいとの要望があり、対応しました。単語数なので、区切りをスペースにすればいいというのはすぐに思いつきましたが、「,」と「.」も対応するとなると、何度も区切る処理が必要になります。 単純…