Javascript+SELECTBOXでページを切り替える
SELECTBOXでページを切り替えたいときがある。よくあるのが、検索結果一覧において「30件、50件」のようにSELECTBOXで表示件数を切り替えられるようにするケース。
調べたけど、スマートな記載が簡単に探せなかったので、メモしておく。 optionのvalueに切り替え先のページのアドレスを記入し、optionが選択されたらそのアドレスに飛ぶようにしている。
<select id="fruit" name="fruit" onchange="location.href=this.options[this.selectedIndex].value;"> <option value="apple.html">りんご</option> <option value="banana.html">ばなな</option> <option value="cherry.html">さくらんぼ</option> </select>
MySQL(MariaDB)で既存のテーブルからCREATE文を作成する方法
既に存在するテーブルと同じスキーマのテーブルを作成したいときがある。 その場合、以下のコマンドを実行する。なお、当たり前であるが、既存のテーブルが存在するDB上から実行する。
SHOW CREATE TABLE テーブル名
例
mysql> SHOW CREATE TABLE sessions \G *************************** 1. row *************************** Table: sessions Create Table: CREATE TABLE `sessions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `session_id` varchar(255) NOT NULL, `data` text, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `index_sessions_on_session_id` (`session_id`), KEY `index_sessions_on_updated_at` (`updated_at`) ) ENGINE=InnoDB AUTO_INCREMENT=30692 DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
PHPでGETパラメータを追加したURLの取得法
現在のGETパラメータに対し、パラメータを追加・修正したURLが欲しい場合がある。例えば、ページネーションにおいて、次のページのリンクを作成したい場合などだ。
http_build_query(array_merge($_GET, array( 〈追加したいパラメータ〉)));
例
http_build_query(array_merge($_GET, array('page'=> 9999)));
Mysqlで50音検索(あ行で始まるレコードを検索する)
検索できるのに50音検索なんて必要なのか? という疑問を抱きつつも、やってみたら意外に面倒だったのでメモしておく。
あ行
SELECT * FROM table WHERE name REGEXP '^(あ|い|う|え|お|ア|イ|ウ|エ|オ)+';
英数字
SELECT * FROM table WHERE name REGEXP '^([a-zA-Z0-9])+';
濁音・半濁音
一部文字列については、濁音や半濁音についても考慮したほうが良い。
SELECT * FROM table WHERE name REGEXP '^(は|ひ|ふ|へ|ほ|ハ|ヒ|フ|ヘ|ホ|パ|ピ|プ|ペ|ポ|ぱ|ぴ|ぷ|ぺ|ぽ|バ|ビ|ブ|ベ|ボ|ば|び|ぶ|べ|ぼ)+';
ただし、括弧(「や【)で始まる文字列もあり、それらは上記ではヒットしない。
.htaccessが利用可能かの確認方法
ErrorDocument 404 http://www.google.com/
一行テキストボックスの横幅を入力データの長さに合わせる
Webページを印刷する際、一行テキストボックスに長いデータが入っている場合、はみ出た文字列が印刷されないという課題がある。 そのため、画面を表示する際に一行テキストボックスの横幅を、入力されているデータの長さに合わせてリサイズするようにした。
$('input[type="text"]').each(function( index ) { $(this).attr('size', $(this).val().length * 2); });
Demo