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

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

プログラミング

入力フォームでいろいろな意見がある

こちらのまとめを読みました。 togetter.com この中で確かにそうだな、と納得できるものがいくつもありました。住所は全角という入力フォームに遭遇したことがあります。 番地の数字を全角にしなければならず、半角で入力してから気がついて直していました。…

データの検索処理を速くする

データの保持方法を変更しているけれど、悩んでいるとも書きました。 ajya.hatenablog.jp[] = [連想配列の日付の添字 => 日付, 連想配列の特有の番号の添字 => 特有の番号, 連想配列の添字1 => データA, 連想配列の添字2 => データC] という形式でデータを保…

さらにデータの保持方法を変更しつつ悩む

データの保持方法を、日付と特有の番号を2次元配列の添字にして、データを連想配列として保持する方法から、単純な連想配列にしてデータを保持する方法に書き換えたと、以前の記事で書きました。 ajya.hatenablog.jpテストをしていると、新たな不具合を発見…

データの保持方法の変更

先日、データの保持方法について書きました。 ajya.hatenablog.jpテスト用のデータを用意し、データを取得して処理を行った結果、正しく処理が行われているのを確認しました。 条件を変えたテスト用のデータを用意して同様に試したところ、処理結果が正しく…

データの保持の方法

プログラムを作成していると、データを保持して加工する場面があります。 単純な1次元の配列にデータを入れて加工できる場合もあれば、2次元配列や連想配列にした方が、データの加工がしやすい場合もあります。現在作成しているプログラムでは、日付と特有の…

JavaScript 評価に1点があった場合、コメント入力を必須にする方法

データの評価を行うシステムで、ラジオボタンで評価を選ぶと、評価の合計を行って表示するようにJavaScriptを書きました。 ajya.hatenablog.jp追加の機能で、観点のいずれかで「1」を選んだ場合、コメントの入力を必須にする、JavaScriptを書きました。 HTML…

JavaScript 評価の合計を求める方法

データの評価を行うシステムがあります。 評価の観点が複数あります。 ラジオボタンで観点ごとの点数を選び、合計を表示したいという要望があり、JavaScriptで合計を計算するようにしました。 HTMLのコード HTMLは以下のように、ラジオボタンをクリックされ…

jQueryが動作しなかった意外な理由

prototype.jsとjQueryを共存させている古いページをメンテナンスしました。 コードをよく見ると、prototype.jsは読み込まれていても実際は利用されていない状態でした。 消してしまって大丈夫だと判断できたので、prototype.jsの読み込みを削除しました。 jQ…

PHP:画面遷移せずGETでデータを渡して処理を行うために、cURL関数を使いました

3年以上前に、POSTでデータを渡すための方法を書いていました。 ajya.hatenablog.jpPOSTで使えたのだから、GETでも使えるでしょうと考えて試したところ、使えました。cURL関数のGETでの利用方法以下のようにして、利用できました。 // 初期化 $curl = curl_i…

ラジオボタンの選択肢の文字列が長い場合の対処

ラジオボタンの選択肢が、当初は半角英字で15文字程度でした。 15文字程度なので1行で収まります。1度お客さんに見せるとラジオボタンの選択肢が変わって少し長くなりました。 表示の幅を調整して、1行で収まるようにしましたた。調整後を再度見せると、また…

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サイトでは、 名前や住所、購入する物の他にクレジットカードの情報を入力 入力内容の確認 決済とデータベースへ…