Hatena::ブログ(Diary)

すたら日記

2009年01月24日

【jQueryプラグイン】 jquery.ajaxComboBox.js を公開しました。

Latest version : 7.3.1 (2014-08-18)

Change Log

f:id:sutara_lumpur:20111215175830p:image

目次 (Contents)

  1. デモ、ダウンロード (Demo, Download)
  2. 紹介 (Introduction)
  3. 動作確認ブラウザ (Validated Browser)
  4. ライセンス (License)
  5. 設置方法
  6. PHP以外のサーバサイド言語での利用
  7. オプション
  8. 更新履歴


デモ、ダウンロード (Demo, Download)

Demo

http://www.usamimi.info/~sutara/ajax-combobox/

GitHub

https://github.com/sutara79/jquery.ajax-combobox/

CakePHP + ajaxComboBox + MySQL

(Cake2.x) https://github.com/sutara79/ajaxComboBox_for_CakePHP

(Cake1.3) https://github.com/sutara79/ajaxComboBox_for_CakePHP1.3


紹介 (Introduction)


f:id:sutara_lumpur:20111215170232p:image

"下キー"で全件表示


f:id:sutara_lumpur:20111215170231p:image

"左右キー"でページ移動


f:id:sutara_lumpur:20111215170230p:image

"Shift + 左右キー"でページ先頭・末尾へ


『TABキー』でリストを閉じる。または次のボックスへ移動。


動作確認ブラウザ (Validated Browser)

  • Google Chrome 23.0
  • Firefox 16.0
  • Opera 12.10
  • Safari 5.1.7
  • IE9

私の環境(Vista + IE9)ではIE8以下での動作確認ができないため、サポート対象から除外しています。

旧バージョンを再現できる"IETester"や"IECollection"などを試しましたが、どうにも不安定で、きちんと特定のバージョンのIEとして動作しているのかすら分からず、手の施しようがありません。

ただ、皆様からIEの旧バージョンでの動作の不具合とその解決策を提供していただければ、積極的に対応します。

また、私が失踪してしまっている場合でも、GitHubでソースコードを公開していますので、ご自由に派生バージョンを作っていただいて構いません。


ライセンス (License)

MIT License

(http://www.opensource.org/licenses/mit-license.php)

無償・無保証です。

改変・再配布はご自由にどうぞ。


利用させていただいたソース (Quotations)

This plug-in uses code and techniques from following libraries.

jquery.suggest 1.1
Author
Peter Vulgaris

Source
http://www.thedanglybits.com/2007/08/06/jquerysuggest-11/
jquery.caretpos.js 0.1
Author
tubureteru

Source
http://d.hatena.ne.jp/tubureteru/20110101/p1


設置方法

Javascript:
jQuery(document.body).ready(function($){

  //もっとも単純な形式で設置
  $('#ComboBox').ajaxComboBox('hoge.php');

});

HTML:
<input type="text" id="ComboBox">


以下のように出力されます。

<div class="ac_container">
  <input type="text" id="ComboBox">
  <div class="ac_button">
    <img src="combobox_button.png">
  </div>
</div>
<div class="ac_result_area">
  <div class="ac_navi">(ページナビ部分)</div>
  <ul class="ac_results">
    <li>北海道</li>
    <li>青森県</li>
    <li>岩手県</li>
    ...
  </ul>
  <div class="ac_attached">
    <dl>(『北海道』のサブ情報)</dl>
    <dl>(『青森県』のサブ情報)</dl>
    <dl>(『岩手県』のサブ情報)</dl>
    ...
  </div>
</div>


※注意.1

外部CSSファイルを読み込む位置は、必ず、ajax-combobox.jsを読み込む

scriptタグの前にしてください。

外部CSS読み込みは、プラグイン読み込みよりも前で行う!
<link rel="stylesheet" type="text/css" href="acbox/css/jquery.ajax-combobox.css" />

<script type="text/javascript" src="acbox/js/jquery.ajax-combobox.js"></script>


※注意.2

CSSの'float'プロパティで回り込みをさせられた要素にComboBoxを設置すると、

候補リストの表示位置がずれてしまうことがあります。

その場合は、ComboBoxを設置する要素にも'float'を指定してください。


※注意.3

安全のため、DBとやりとりするためのPHPファイルが入っている"acbox"フォルダは、

ドキュメントルートの外に置くようにしてください。


PHP以外のサーバサイド言語での利用

Rubyなど、PHP以外の言語を使う場合でも、最終的にJavaScript側へ返す値が

下記のような形式なら問題なく動作すると思います。

JavaScript側に返すべき値

通常の検索

ヒットしたレコードのオブジェクト配列と、ヒット件数とをひとつの連想配列にまとめ、

それをJSON用にエンコードしたもの。

【JSON】
{
  'result' : [
    { (ヒットしたレコード) },
    { (ヒットしたレコード) },
    { (ヒットしたレコード) },
    ...
  ],
  'cnt_whole' : (ヒットした件数)
}

初期値設定

ヒットした1件のレコードのオブジェクトをJSON用にエンコードしたもの。

【JSON】
{(ヒットしたレコード)}

オプション

第2引数に、JSON形式でオプションを指定できます。

$('#comboArea').ajaxComboBox(
  'hoge.php',
  {
    'db_table'    : 'user_list',
    'field'       : 'user_name',
    'order_by'    : 'age',
    'per_page'    : 10
  }
);

オプション名 説明 初期値
基礎部分:
db_table 問い合わせるDBのテーブル名 'tbl'
field DBテーブルの中で、候補として取得するフィールド名 'name'
order_by "フィールド名+(ASC/DESC)"の文字列、または配列 "search_field"を流用
per_page 候補一覧1ページに表示する件数 10
navi_num ページナビで表示する、隣接ページの数 5
navi_simple 先頭・末尾のページへのリンクを非表示にして、ComboBoxの幅をできるだけ狭くすることができます。 false
plugin_type "simple"と設定することで、ボタンが非表示となってシンプルなテキストボックスとなります。 'combobox'

init_record

ComboBoxの初期値

データベースのプライマリキーのフィールド名で指定して下さい。

false
lang

プラグインで使われる言語の選択

  • ja : 日本語
  • en : 英語
  • es : スペイン語 (Joaquin G. de la Zerda さんに感謝)

'ja'

bind_to

候補選択と同時に、別のイベントを発火できます。 false

search_field

カンマ区切りでフィールド名を指定することで、同じテーブルの中の複数のフィールドから検索できます。 "field"を流用

and_or

スペース区切りの複数の言葉で検索した場合、デフォルトではAND検索となりますが、OR検索にすることもできます。 'AND'
button_img ボタンに使われる画像 ='acbox/btn.png'
サブ情報:
sub_info

サブ情報を表示するかどうか?

"simple"と指定することで、項目名を非表示にできます。

( 例 )

false
sub_as サブ情報での、カラム名の別名 {}
show_field サブ情報で表示するカラム(複数指定はカンマ区切り) ''
hide_field サブ情報で非表示にするカラム(複数指定はカンマ区切り) ''
セレクト専用:
select_only セレクト専用にするかどうか? false
primary_key セレクト専用時、hiddenの値となるカラム 'id'
URL短縮:
shorten_btn 短縮実行ボタンのセレクタ
shorten_src URL短縮を外部に依頼するスクリプトのパス 'acbox/bitly.php'
shorten_min URL短縮を実行する最小の文字数 20
shorten_reg URLを検出するための正規表現
タグ検索:
tags (plugin_type = 'textarea' の場合に限り、)タグ検索の設定 false



更新履歴

バージョン5.0以降は、下記をご覧ください。

https://github.com/sutara79/jquery.ajax-combobox/blob/master/CHANGELOG.md


※ バージョン4.0以降は、"package"オプションを廃止したので

動的に追加・削除する方法がなくなりました。

代わりの方法を紹介します。

http://d.hatena.ne.jp/sutara_lumpur/20111113/1321169720


hogehoge 2009/09/02 18:24 商用利用でのライセンスはどうなっていますか?

sutara_lumpursutara_lumpur 2009/10/25 14:09 >>hogeさん
返信が遅くなり、大変申し訳ありません。

このプラグインは、BSDライセンスでいいのではないかと思います。
私はソフトウェアライセンスに関してほとんど無知なので
自信はないのですが…。

このプラグインの作成の土台として使わせてもらった
Peter Vulgaris氏の"jquery.suggest 1.1"には、

『Feel free to do whatever you want with this file』

と書いてあります。
私も、この一文をそのまま流用しています。
『何をやってもいいよ』ということなのですから、商用サイトなどで
利用されても、Peter Vulgaris氏は怒らないと思います。
私も、全然かまいません。

SOSO 2009/12/22 11:23 全件取得だとキャッシュを読み込むのは仕様ですか?
一応、$.ajaxSetup({cache: false});で無効にしてみましたけど。。。

sutara_lumpursutara_lumpur 2009/12/22 11:40 >>SOさん
自分としては、もともと、キャッシュは読み込まないようにして、
常にデータベースに問い合わせるようにしているはずなんですが…
と言いつつ、そのあたりの知識は不十分なので、もしかしたら僕が
勘違いしているのかもしれません。

申し訳ありません、逆に質問してしまいますが…、
jsファイル自体がキャッシュされる、という現象とは違うのでしょうか?
また、jQueryのAjax機能でDBに問い合せた際は、その内容がキャッシュされ、
次回はそれが返されるというのがデフォルトなのでしょうか?

sutara_lumpursutara_lumpur 2009/12/22 11:58 >>SOさん
申し訳ありませんでした。
ちょうど今、手が離せない状態だったので、横着に逆質問してしまいましたが、
少し調べたらすぐにわかりました。
jQueryのAjax機能では、キャッシュされるのがデフォルトのようですね。
(→http://allabout.co.jp/internet/javascript/closeup/CU20090330A/index.htm)

これは知りませんでした。
現在、ComboBoxの改造を行っているところですので、次回のアップデートで
『キャッシュ無効』の設定も追加します。

指摘していただいて、ありがとうございましたm(_ _)m

SOSO 2009/12/22 14:05 jQueryの日本語リファレンスなら以下が詳しいです。
http://semooh.jp/jquery/

SOSO 2009/12/22 14:21 ちなみに、そのようなJSONを返せばいいのか教えてください。

$変数["candidate"][] = ほにゃらら
と書かないといけませんよね

sutara_lumpursutara_lumpur 2009/12/22 14:56 >>SOさん
『そのようなJSON』とは、なんのことでしょう…?

現在のバージョンでは、AjaxでDBに問い合せると、以下のようなJSONで
返ってきます。
{
"cnt_page":(数値→表示中のページの候補数)
"attached":(二次元配列→サブ情報用)
"candidate":(配列→各候補)
"cnt":(数値→全候補数)
}
サーバサイド(PHP)側では、SOさんの示したような書き方になります。
それを『echo json_encode($変数)』で返しています。

ちなみに、次の更新では、SQLをJavascript側で作ってPHPに送り、
PHPがDBに問い合わせた結果をそのまま受け取って、Javascript側で
結果セットから候補やサブ情報や件数などの各情報を選り分けるように
なります。
PHPは、JsとDBとの単なる仲介役となり、コード量も大幅に減ります。
jQueryがメインのプラグインなんですから、はじめからこうしておくべきでした…。

SOSO 2009/12/23 21:26 すみません。
「そのようなJSON」ではなくどのようなJSONです。。。

>>ちなみに、次の更新では、SQLをJavascript側で作ってPHPに送り、
>>PHPがDBに問い合わせた結果をそのまま受け取って、Javascript側で
>>結果セットから候補やサブ情報や件数などの各情報を選り分けるように
>>なります。

それは開発者以外でもクエリを投げて結果を取得できるということですか?
つまり、悪意のあるユーザーが不正なクエリをajaxComboBoxを通じて送信できるということですか?
(ajaxComboBoxが生成したクエリのバリデートをきちんとしなければなりませんね)

sutara_lumpursutara_lumpur 2009/12/24 09:39 >>SOさん

>悪意のあるユーザーが不正なクエリを
…、そのあたり、まったく考えていませんでした…。
そして、私のセキュリティ関連の知識自体が、そもそも不十分です。

そんな自分の考えですが…、


1.
まず、サーバサイドで処理するPHPファイルと、現在DBとして
使用しているSQLiteのファイルをドキュメントルートの外に置くように
注意を添え、配布するデモのフォルダ構成も変更します。

どのSQLiteファイルを開くか、または、DBがMySQLなどの場合、
サーバ名・ユーザー名・パスワードなどの情報はこのPHPファイルに
記述することになるでしょうから、このPHPファイルだけは盗み見られ
ないようにします。


2.
SQL一文をそのままPHPに送ると検査が大変でしょうから、
SELECT、FROM、JOIN、WHERE、ORDER BY、LIMIT、OFFSET、
各句に分けて送り、PHP側でそれぞれ句を検査するようにします。

途中で『;』を入れられてないか、また、データを取得してよい
テーブル、フィールド名をホワイトリストとして、パスワードなど
見られてはいけないテーブル、フィールド名をブラックリストとして
それぞれ配列形式で保持し、これらとの照合を行います。

ホワイトリスト、ブラックリストを設定する方法は、このページでも
説明を追加しますし、PHPファイルでも、コメントで説明を行います。


…このような対策で、いいでしょうか…?

SOSO 2009/12/25 08:38 う〜ん。私見ですが。
クエリをajaxComboBox側で生成するのは止めた方がよいかと思います。
特殊な絞り込みをデータベース側で行いたいときに、ajaxComboBoxでは生成できませんよね。
(そのデータベース独自の関数などをフォローできませんよね)

sutara_lumpursutara_lumpur 2009/12/25 09:15 >>SOさん

なるほど…。
デモではSQLiteを使っているわけですが、これをMySQLその他のDBに
替える場合にユーザーにとって分かりやすいようにと考えて、PHPファイルは
なるべく簡潔な形にしようとしていたのですが、かえって融通のきかない
形になってしまうということですね…。

わかりました。
次の更新でも、今までどおりPHP側で、問い合わせに必要な情報をまとめて
SQLを作成するようにします。
そのほうが、ユーザーが独自の処理を追加しやすいということですよね?
前述のセキュリティ対策も、忘れずに施します。

SOSO 2009/12/25 11:41 そうですか。。。
ただ、ajaxComboBoxにてクエリ生成の有無がオプションで選択できれば、
実装してもいいかもしれません。
私みたいに、サーバーサイドでクエリ書きたい人や、ajaxComboBoxにてクエリを生成したい人など
いろいろいると思いますので。。。

--
ご存じかと思いますが。。。
Javascriptの圧縮は以下を使用しています。
http://dean.edwards.name/packer/
他にもいろいろあるみたいですね。

sutara_lumpursutara_lumpur 2009/12/26 09:21 >>SOさん

Js側でクエリを作るように改造してみて思ったんですが…、
PHPでクエリを作る方が、『print_f()』関数などでわかりやすく書けると思います。
Jsだと、『'SELECT ' + hoge + ' FROM ' + fuga ...』とか、ごちゃごちゃして
しまいますから。
ですから、やっぱり、現行と同じく、PHP側でクエリの形を整えるようにします。


…ところで、教えていただいたJavascriptの圧縮サービス、いいですね。
Googleの『Closure Compiler』を試したこともありましたが、CUI版は
操作方法がわからず断念し、Web版は日本語が文字化けして断念し…と、
結局、圧縮は諦めていたので。

試しにこのプラグインのJsファイルを圧縮してみたら、65KBが30KBになりました。
元の『jquery.suggest 1.1』に機能を追加していくうちに、ファイルサイズが
どんどん肥大化していってて、気になっていたところでもありました。

jQuery本家よろしく圧縮版も合わせて配布すれば、動作の軽さにこだわる人に
喜ばれると思います。
教えていただいてありがとうございましたm(_ _)m

IEきらいIEきらい 2010/02/22 14:39 IE7で以下のページを見ると、「ページでエラーが発生しました。」となってしまい動作しません。
何故でしょうか?
http://www.usamimi.info/~sutara/acbox_demo/japanese.php

sutara_lumpursutara_lumpur 2010/02/22 18:04 >>IEきらいさん
すぐに調べてみます。
しばらくお待ちくださいm(_ _)m

sutara_lumpursutara_lumpur 2010/02/22 20:34 >>IEきらいさん
問題箇所を修正し、バージョン3.4として公開しました。

原因は…、引数としてオブジェクトをJSON形式で渡す際に、
{
hoge : 1,
piyo : 2,
fuga : 3,
}
のように、最後のプロパティの末尾にもカンマをつけてた箇所でしたorz
こんな凡ミスで…。
ご迷惑をおかけしました。

SOSO 2010/04/05 16:20 googleのjavascript圧縮サービス
Closure Compiler Service
http://closure-compiler.appspot.com/home

sutara_lumpursutara_lumpur 2010/04/05 20:40 >>SOさん
ver4.0の開発、大幅に遅れております…rr(_ _;)rr

ClosureCompiler、以前試してみたんですけど、どうにも操作が分からず、
諦めてしまいました。
私にとっては、以前教えていただいたpackerで十分です。
ありがとうございます。

SOSO 2010/04/05 21:02 CUIプログラムではありません。
Webアプリケーションです。

もちろん、packerで十分なら良いですが。。。

123doing123doing 2010/06/04 12:43 It's very good.
I like this.
Thanks for share.
And I wrote something to introduce this project for my readers.
You can find the post about this in my website.
If something is wrong,pls figure it out.thanks.

valuesharevalueshare 2010/06/30 15:21 ・リストは配列で指定可能にしデータベースへの問い合わせをしない
・↓キーor右のボタンをクリックするまで候補を表示しない
などのオプションがあると良いですね。

ohayoooooooooohayooooooooo 2010/11/16 19:40 jquery.ajaxComboBoxありがたく使わせていただいております。
ところで、サブ情報の項目名について一つ気になることがあります。
ある程度長い項目名の場合、不自然な位置で改行されてしまい見た目が悪くなってしまうのです。
具体的には以下のような感じです。

調理時間
(分)

カロ
リー(kcal)

もしユーザ側で修正する術がございましたら教えていただけないでしょうか。

sutara_lumpursutara_lumpur 2010/11/16 21:06 >>oahyooo さん
ご迷惑をおかけしております…(-_-;)

.ac_attached table{
width:263px;
}
のようにサブ情報のテーブルに幅を指定し、念の為に
.ac_attached th{
white-space:nowrap;
}
と、<th>内での改行を禁止すればOKです。
…って、これはこちら側で初めから設定しておくべきですよね。
すぐにうpします…m(_ _)m

ohayooooooooo ohayooooooooo 2010/11/16 21:17 直りました。お早い対応ありがとうございました。

ohayooooooooo ohayooooooooo 2011/01/04 20:30 すみません。一つお聞きしたいことがあるのですが、このプラグインをレンタルサーバへアップロードする場合、特に気をつけなければならないことはありますか?acboxフォルダごとアップロードしたのですが、動作してくれず困っています。2つのレンタルサーバで試したところ、どちらも同じ現象が起きていますので私のやり方に問題があるのは間違いないようなのですが・・・。ちなみにxamppを使ったローカル環境では正常に動作しております。

sutara_lumpursutara_lumpur 2011/01/04 21:00 XAMPPで動いたのに本番では動かないというのであれば、
パーミッションなどを疑ってみてはどうでしょう。
SQLiteファイルを『606』、PHPファイルを『701』など…。
ただ、自信はありません(-_-;)

もしよろしければ、アップロードしたページのURLをメールで
教えていただけませんか?
FirebugやGoogleChromeのデバッガで調査してみます。

ohayooooooooo ohayooooooooo 2011/01/05 00:09 ご回答ありがとうございます。
パーミッションは一応、レンタルサーバに書かれていた取説を見てちゃんと設定したつもりです(あくまでつもりです・・・)。あと、調査していただけるのは今の私にとって大変ありがたいですが、この他にも画像が表示されない、mySQLのデータのインポートでエラーが出るなど、いくつか問題が残っていますので、それらを全て解決した上でなお動かない場合にのみお願いしたいと思います。それにしても、サイト作りがこんなに大変だとは思いませんでした・・・。

sutara_lumpursutara_lumpur 2011/01/05 10:54 画像が表示されないのは、パスの指定が間違っているだけかもしれませんし、
MySQLのインポートに失敗するのは、データ容量が大きすぎるのかも?
例えば、さくらなら『(最長: 16MiB)』と定められています。
勝手な推測ですが…(^ ^;)
いずれにせよ、プラグインとの関係は薄そうなので、上記二つの不具合が
解決しなくても、お気軽に相談してください。

ohayooooooooo ohayooooooooo 2011/01/05 20:55 アドバイスありがとうございます。
mySQL→サイズが大きすぎたせいでした。小分けしたらうまくいきました。
画像→テンプレートを利用してサイトを作ったのですが、元々付属していた画像(png)は表示されるのですが、私が追加した画像(jpg)だけ見事に表示されませんでした。画像形式の違いが原因なのか呼び出し方が悪いのか、どちらにしてもうまくいくほうをまねればよさそうですので、これはこれでよしとします。

とりあえず、プラグイン部だけ抜き出してアップロードしてみました。もしよろしければ少しだけみていただけるとありがたいです。レンタルサーバですので広告がついてます。
http://www23.atpages.jp/dantzig/

ローカル環境だとちゃんと入力に対し候補が表示されるのですが、実際にサーバにあげると入力ボックスすら現れません。よって広告しか表示されません(笑)。パーミッションの設定もしましたし、利用している@pagesには「php、mySQL、sqliteがご利用できます」と書いてありますし・・・謎です。

ohayooooooooo ohayooooooooo 2011/01/05 20:59 すみません。入力ボックスすら表示されないというのは間違いでした。

sutara_lumpursutara_lumpur 2011/01/05 21:07 原因が分かりました。
プラグインを設定している以下の部分の

$('#comboArea').ajaxComboBox('/acbox/php/ajaxComboBox.php',...

『/acbox/php/ajaxComboBox.php』を
『/dantzig/acbox/php/ajaxComboBox.php』にすればいいと思います。

ohayooooooooo ohayooooooooo 2011/01/05 21:49 お早いご回答ありがとうございます。
まさかパスが原因だったとは思いませんでした。画像ファイルも同じような書き方でしたので、全ての原因はパスかもしれません。というか、サーバにあわせてパスを変えないといけないこと自体知りませんでした(泣)・・・。

今週の3連休中に何とか解決できたらいいなと思っていたのですが、思いのほかあっさり解決されたので驚きです。やはり経験者に聞くのが一番だと改めて思いました。

ziozio 2011/01/12 09:35 すばらしいプラグインの公開ありがとうございます。使わせていただこうかと思っています。

一点、お願いというかがあるのですが、PHP以外での利用をかんがえているのですが
JAaxリクエストがきたときの返却すべきJSONの仕様について、
できれば、利用方法などのページにまとめていただけると助かります、
(このコメント欄にかかれていましたが,探すのに苦労しました)

ご検討いただければと思います、

sutara_lumpursutara_lumpur 2011/01/12 12:03 >>zioさん
はなはだ簡単ではありますが、『目次 (Contents)』に
『PHP以外のサーバサイド言語での利用』の項目を追加しました。
これでいかがでしょうか… (^ ^;)

ohayooooooooo ohayooooooooo 2011/01/24 14:22 すみません。ieでおかしな挙動が現れましたので質問させていただきます。

http://www.symphonic-net.com/ohayou32

おかげさまで現在、上記のサイトを立ち上げて細かいところを修正中なのですが、入力ボックス(「おまかせ献立作成」の2)の下矢印を押すと、候補は出るもののその補足情報が現れないのです。さらに、入力ボックスに候補の一部(例.「ねぎの〜」)を入力すると、デバッガが起動し以下のエラーメッセージが表示されました。

行: 810
エラー: 'candidate' は Null またはオブジェクトではありません。

FireFoxでは問題なく動作するのですが、どうすればいいでしょうか。

ohayooooooooo ohayooooooooo 2011/01/24 14:24 ちなみにieのバージョンは8.0.6001.18072です。

sutara_lumpursutara_lumpur 2011/01/24 15:43 >>ohayoooさん
おそらく、 jquery.ajaxCombobox.3.5.5の810行目を 『if(json_data.candidate == undefined){』
に変更すれば直ると思いますが、確信が持てません。IEでの動作をもう一度確認していますので、それまで
お待ちください m(_ _)m

sutara_lumpursutara_lumpur 2011/01/24 16:39 結局、確信の持てる解決策は見つかりませんでした。
…上の方法で解決できたでしょうか?

ohayooooooooo ohayooooooooo 2011/01/24 17:35 お早いご回答ありがとうございました。
変更してみたのですが、症状は変わりませんでした。
もしまた解決策が見つかりましたら、よろしくお願いします。

sutara_lumpursutara_lumpur 2011/01/24 17:45 だめでしたか…。残念です。
明日、また別の手を試してみます。

sutara_lumpursutara_lumpur 2011/01/24 19:02 もしかしたら、ほかのJavaScriptのコードが干渉しているのかもしれません。
一度、他のJavaScriptを全てコメントアウトして、ajaxComboBoxのみを有効にした状態で
ページを開いてComboBoxを操作してもらえませんか?
とはいえ、どのみち『if(!json_data.candidate){』に変更を加えなければ
ならないのでしょうけど…(-_-;)

あてずっぽうで、残り考えられる案は
『if(!json_data){』
くらいしか思いつきません m(_ _)m

ohayooooooooo ohayooooooooo 2011/01/24 21:23 『if(!json_data){』を試してみましたが、結果は変わらず。
また、ajaxComboBox以外の部分をごっそり削除してアップしてみましたが、同じく変わらずです。
http://www.symphonic-net.com/ohayou32

ただ、関係ない部分がなくなった分、デバッグしやすくなったと思います。FireFoxでは快適に動作しますので、些細な仕様の違いによるものだと思います。(ieではwindow.onloadはエラーでwindow.onLoadはOKといった類)

sutara_lumpursutara_lumpur 2011/01/25 07:51 分かりました!
prototype.jsと干渉していたようです。
原因を詳しく分析してみます。

sutara_lumpursutara_lumpur 2011/01/25 08:13 解決策が分かりました。
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/jquery-latest.js"></script>
の下に
<script type="text/javascript">jQuery.noConflict();</script>
を入れるだけです。
(参考)
http://semooh.jp/jquery/ref/cont/with_prototype/

ohayooooooooo ohayooooooooo 2011/01/25 17:59 ご対処ありがとうございます。早速追加しました。
しかし、やはり症状は変わりませんでした。といいますか、noConflictは既に最初の状態(削る前の状態)で導入済みでした。
ただ、<script type="text/javascript" src="acbox/js/jquery.ajaxComboBox.3.5.5.js"></script>の後に記述していましたので、もしかしたらと前に置いてみたのですが、やっぱりダメでした。

う〜ん・・・IEはなかなか厄介ですね・・・。

sutara_lumpursutara_lumpur 2011/01/25 18:04 なんと…。
とはいえ、prototype.jsとの干渉が原因なのは間違いなさそうですから、
prototype.jsで行っている処理をjQueryで代替できないか、
方法を探ってもらえませんか?
根本的な解決策にならず、申し訳ないのですが…。

ohayooooooooo ohayooooooooo 2011/01/25 19:25 prototype.jsの件、了解です。こちらで調査してみることにします。
ところで、出先のPCのIEから見るとちゃんと表示されていました。(バージョンは確認していませんが)
ただし、他のjavascript部分が動作しませんでしたので、内部でエラーが発生していたかもしれません。

いろんな症状があるようですので念のために確認させていただきたいのですが、管理人さんが確認された症状は当初挙げたような候補の補足項目が表示されず、かつ何かを入力したり、ページ移動するとエラーが発生するというものでしょうか。それとも何らかの別の症状でしょうか。

ohayooooooooo ohayooooooooo 2011/01/25 23:43 おかげさまで、ようやく直りました。
どうやらjavascriptを読み込む順番が悪かったために、prototype.jsとの干渉が解消されなかったのが原因のようです。
結果的に、以下の順に読み込むことで解決しました。

prototype.js
jquery.js
jquery.ajaxComboBox.3.6.js
jquery.noConflict();

以上です。どうもありがとうございました。

sutara_lumpursutara_lumpur 2011/01/26 08:42 おおおお!
よかったですね。僕もホッとしました。

rockcaperockcape 2011/02/21 10:57 いつも素晴らしいプラグインの開発をしてくださって有難う御座います。
有り難く利用させて頂いております!
あまりにも初歩的な質問で恐縮なのですが、当方sutaraさんのAjaxSuggestをcakePHPにて使わせて頂いております。
AjaxComboboxもとても便利そうなので利用させて頂きたいのですが、cakePHPでの実装方法も簡単にご説明頂けないでしょうか?
AjaxSuggestは実装例をアップして頂いていたので良く分かったのですが、根本的な所を今だ理解出来ていないので、Comboboxの実装が上手く出来ませんでした。。
お手数かと思いますが、手が空いたときにでもどうぞお願いしますー。

sutara_lumpursutara_lumpur 2011/03/01 17:55 >>rockcape さん
返事が遅くなって大変申し訳ありません m(_ _)m
現在、CakePHPでの使用方法を実際に試しているところですが、難航しています。
もうしばらくお待ちください。

crosscross 2011/03/05 14:38 demoのページにサンプルComboBoxが表示されておりません(>_<;)
障害かなにかでしょうか・・・?

sutara_lumpursutara_lumpur 2011/03/05 17:01 >>cross さん
大変失礼しました。こちらのリンク設定ミスでJavaScriptファイルが
読み込まれていませんでした。
今、修正を終えました m(_ _)m

crosscross 2011/03/06 11:46 参照可能になっておりました。迅速なご対応ありがとうございます<(_ _*)>

rockcaperockcape 2011/03/09 10:41 ご返信に感謝します!
なかなかに難しそうですね。。sutaraさんのプラグインが使えればやりたかった事が全て実現出来そうです。他力本願で恐縮です。。
自分ではこのような高度なコードは書けないもので(^_^;A
宜しくお願い致します!

takachintakachin 2011/03/09 14:55 私も rockcapeさんと同様にCakePHPにて、「AjaxCombobox」を用いたコンボボックスで、実装を行っております。
プルダウンから一覧表示して、参照したユーザを新規保存することは、確認できました。
しかし、編集する際に再度保存したデータを参照する際に、データを抽出できません。おそらくCakePHPとJavaScriptの兼ね合いだとは思うのですが・・・。

masamasa 2011/03/10 10:57 素晴らしい機能をありがとうございます。
楽しく使わせて頂いております。
特に『jquery.ajaxComboBox.js』にはお世話になっております。
そこで『jquery.ajaxComboBox.js』についてご質問なのですが、こちらではDBにSQLite2を使用していますが、こちらをMysqlで使用したいと考えております。
ですが、PHPに疎くて記述が分かりません。
以下のサイトを見たのですが、リンク切れで先が見れませんでした。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1050320425

Mysql用のinitval.phpとajaxComboBox.phpをご説明頂けたら幸いです。
大変困っておりますので、どうかよろしくお願い致します。

masamasa 2011/03/10 19:55 ありがとうございます。
なんとか自己解決できました。

crosscross 2011/03/11 00:50 動的に追加したテキストボックスに対して、ajaxSuggestを適応する例が、
http://d.hatena.ne.jp/sutara_lumpur/20101027/1288143549 の記事に書かれておりますが、
これをajaxComboBoxにて行うことはできないでしょうか…??
PHP自体は扱えるのですが、jqueryの知識が乏しく、大変困っております。。
コントロールの行追加を行った際、ajaxComboBox以外に別のSELECT BOXも同時に追加したいと考えております。
package機能を応用して、+ボタンを押した際に、ajaxComboBoxだけでなく、任意のSELECT BOXも一緒に
追加する方法があれば、既存ソースのカスタマイズポイントなどをご教授頂ければ大変助かります。

お手数をお掛け致しますが、お時間のあるときにご回答頂ければ幸いです。

loveitloveit 2011/06/21 09:39 非常に素晴らしいプラグイン!!Cakeまで対応とは・・・。
エールを送ります!

めっとめっと 2011/07/27 19:07 いつも便利に使わせていただいております
下キーを押したままにした場合大量のリクエストが発行されて
DBが最大接続数に達してしまう場合が有るようです
おしっぱにするなといえばそのとおりなのですが、不特定多数が使うため何をするか分かりません
下キーをおしっぱの場合でもリクエストは一回だけにする等は出来ないでしょうか?
もしくはサーバーサイドで対処すべきなのでしょうか?

rkrk 2011/09/14 16:37 こちらのプラグインをMySQLで使用したいのですが、どのように変更したらよいのか教えていただけないでしょうか?
欲しい機能が全て詰まっており、ぜひ使用したいと考えています。
よろしくお願いします。

sutara_lumpursutara_lumpur 2011/11/14 11:35 皆様、私が8ヶ月間も引きこもっていたせいで返信が遅れ、本当に申し訳ありませんでした m(_ _)m


>>loveit さん
ありがとうございます。
プログラミングをやめないかぎりは、ちょこちょこ手を加え続けていきたいと思います。


>>めっと さん
正直、DBにどれだけ負荷がかかっているかを検査する方法を知らないので対処できません…。
現状では、ajax通信を行う際、すでに別のリクエストが送信されていれば、それをキャンセルしてから新たな通信を行うように記述しているので、大量のリクエストが送信されることはないはずなのですが…。
しかし、確かめようが無いので、自信はありません。


>>rk さん
DBと通信しているサーバサイドの処理、このサンプルの場合はphpの記述をほんの少し書き換えるだけでMySQLからデータを読み出すことも可能です。
下記にソースを丸ごと載せましたので、コピーして使ってください。
http://d.hatena.ne.jp/sutara_lumpur/20111114/1321236006

takachintakachin 2012/04/05 11:32 元気になられたのですね。よかったです。
(いろいろ聞きたいこともあったのですが、音信不通だったので ^^;)

で、ふと調べたいことがあって、こちらを閲覧したらガッツリバージョンアップしてるっ!って ^^;
(それ以上に、イメージがイラストから写真になってるほうが、驚きました(笑))

前置きが長くてすみません。ここから本題なのですが。
以前に私の記憶では、コンボボックスを複数表示させる機能が
あったと思うのですが(現状「jquery.ajaxComboBox.3.6.1.js」を使用)、サンプルがなかったので、正直よくわかりません^^;
使用方法をご教授願いたいのですが、可能でしょうか?

よろしくお願い致します。

sutara_lumpursutara_lumpur 2012/04/19 20:15 takachinさんへ

返信が遅くなって申し訳ありません。
コンボボックスを動的に追加・削除させるオプションは
バージョン4.0から廃止されました。
代わりの方法のサンプルを作ったので、こちらをご覧くださいm(_ _)m
http://d.hatena.ne.jp/sutara_lumpur/20111113/1321169720

s-fielders-fielder 2012/05/07 18:06 はじめまして。
以前にjavaの開発で使わせていただきました。
そのせつはありがとうございました。
個人的に気に入っているインターフェースなので最近の開発でもまた使えたらなと
思いましてバージョン4.3を試してみたのですが、IE8でエラーが発生してしまいました。
可能であればIE6〜で対応していただけるとありがたいですが、せめてIE8以上で動作でき
ると採用しやすいのでありがたいです(ユーザの環境や開発環境もWindowsXPはまだまだあるので・・)。
個人的に動作確認におすすめな「IE Collection」というソフトがあります。
1つのWindows環境に複数のIEバージョンを入れられるので、とても重宝しています。(IE9ではvista以上のOSでないと入れられません)

あつかましくて申し訳ないですが、もう1つ要望があります。選択専用の場合だけでかまわないのですが、コンボを開いたときに選択しているものがハイライトする様にはできないでしょうか。
以前に使用させていただいたときには、なんとか自分で改造して対応しましたが、デフォルトで対応しているととてもありがたいです。

長々とすみません。
今後対応していただけると採用とてもうれしいですm(_ _)m

sutara_lumpursutara_lumpur 2012/05/07 19:24 @s-fielder さん
現在、バージョン5.0を開発中です。
遅々として進まず、完成がいつになるのか分かりませんが…。
その際に、できるかぎり実現できるように努力してみます。
保証はできませんが…。
期待せずにお待ちください m(_ _)m
(あいまいな言い方で申し訳ありません)

sutara_lumpursutara_lumpur 2012/06/04 01:02 @s-fielder さん
バージョン5.0を公開しました。

選択しているものを強調表示する機能は実現しましたが、
私の環境ではIE8の動作を再現することは出来なかったので、
IE8以下は、今回もサポート対象外といたします。
"IE Collection"や"IE Tester"を試しましたが、そもそも動作が不安定で
確認どころではありませんでした…。
その他IE9の開発者モードなども試しましたが、どうやらCSSの効果の
確認ぐらいにしか使えない様子でした。

s-fielders-fielder 2012/06/04 15:29 ありがとうございます!
WindowsXP上ですが、IE8と"IE Collection"のIE6でDEMOを確認してみましたが、
両方ともエラーは発生しなくなっています!見た目が崩れる現象も無くなってます♪
「選択しているものを強調表示する機能」も動作してました!
まだダウンロードして試してないのでやってみようとおもいます。

"IE Collection"はVista上では不安定なんですね。
XP上でIE6しか使ってませんがメニューなどが英語になっているくらいで、
本物とほぼ同じ動作だったので重宝しています。

突然の書き込みたっだのに対応していただいてありがとうございましたm(_ _)m

sutara_lumpursutara_lumpur 2012/06/04 15:35 @s-fielderさん
おお! IE8,IE6でも正常に動いているんですね。
ほっとしました (*´∀`*)

takachintakachin 2012/09/06 19:01 いつもご要望に回答いただきまして、ありがとうございます。
CakePHPと、AjaxComboBoxのサンプルを参考に、実際にコーディング
したのですが、まだ難しくてうまく動作していません。

(ま、そもそも私のCakeのバージョンが、1.3というのが問題なのかもしれませんが w)

ただ、チーム開発している手前、Cakeのバージョンアップは難しいのです。
内容をよく見たところ、Viewのメソッドで「fetch($name)」が、1.3には存在しない・・・。
どうしたら・・・ orz

なにか、いい手段はないでしょうか。・・・無理ですかね^^;

sutara_lumpursutara_lumpur 2012/09/07 09:34 @takachin さん
1.3に対応したコードを作りはじめました。
が、難問にぶつかったら、諦めてしまうかもしれません。
そのときはご容赦ください。

sutara_lumpursutara_lumpur 2012/09/07 10:21 CakePHP1.3用のサンプルを作りました。
https://github.com/SutaraLumpur/ajaxComboBox_for_CakePHP1.3

takachintakachin 2012/09/07 11:03 迅速な対応、ありがとうございます。
内容を確認して、実装したいと思います。

また、わからない点がありましたら、ご教授いただきますよう、よろしくお願い致します。

takachintakachin 2012/09/07 11:18 実装しながら、質問致しますので、いくつか書き込むことになると思いますが、ご了承願います。
今、内容を閲覧したなかで、「views / layouts」配下に
「ajax.ctp」がないように見受けられます。
しかしながら「controllers / nations_controller.php」内の ajax_search()には、「$this->layout = 'ajax'」とございます。おそらく抜けていると思いますので、アップしていただきますよう、よろしくお願い致します。

sutara_lumpursutara_lumpur 2012/09/07 11:29 Cake1.3の場合、ajax.ctpは、appフォルダ側にはありませんよ。
『cake/libs/view/layouts』 にあります。
つまり、改めてユーザが用意する必要はありません。
(Cake2.xではappフォルダ側にあります)

takachintakachin 2012/09/07 12:36 すみません。よくcakeをわかってなかったです。
もう少し、勉強しつつ実装してみます。
ありがとうございます。

takachintakachin 2012/09/10 12:44 お世話になってます。
なんとか、新しいAjaxComboBoxでデータを検索することができました。ありがとうございます。
ただ、ちょっと困ったことがありました。
初期値を設定した際に、初期値を設定しない場合と「$this->param['url']」の要素数が異なり、
うまく動作しなかったので、「$model->modelAjaxSearch()」メソッドを改修致しました。
ソースをお渡ししたいのですが、どのようにすればよろしいでしょうか?^^;

sutara_lumpursutara_lumpur 2012/09/10 13:45 @takachin さん
わざわざありがとうございます m(_ _)m
私のメールアドレス宛に送ってください。
toumin.m7(あっと)gmail.com

syoshinsyasyoshinsya 2012/10/29 13:32 素晴らしいプラグインをありがとうございます。
この度、ajaxcomboboxを使わせていただいたのですが、サンプルプログラムの
sample.js

$('#ac01_04').ajaxComboBox(
'acbox/jquery.ajaxComboBox.php',
{
lang : 'en',
db_table : 'nation',
search_field : 'name, id'
}
);
のところを
$('#ac01_04').ajaxComboBox(
'acbox/jquery.ajaxComboBox_mysql.php',
{
lang : 'ja',
db_table : 'staff_mst',
field : 'staff_name'
}
);
という風に変更しテストしたところphpで指定したデータベースから指定したデータを全件取得しプルダウンで表示はされるのですが、検索されず、0件と表示されるばかりです。数値データやアルファベットのデータでもテストしたのですが検索してくれません。
どういった原因が考えられるでしょうか?
教えていただけると幸いです。

sutara_lumpursutara_lumpur 2012/10/29 13:55 @syoshinsya さん
うーん、その情報だけでは原因が予想できません。
差し支えなければ、テスト中のフォルダをそのままメールで送っていただけませんか?
必ず解決できるとはかぎりませんが…。
(toumin.m7アットgmail.com)
MySQLのデータベースのパスワードなどは伏せておいてください。

syoshinsyasyoshinsya 2012/10/29 15:22 大変、恐縮ではございますがメールにてファイルを送らせていただきました。

見ていただければ幸いです。

syoshinsyasyoshinsya 2012/11/05 14:30 先日はありがとうございました。acboxへの新しい質問なのですが、複数のフィールドからデータを取得し結合してリストに表示させることは可能でしょうか?お忙しいとは思いますが返答いただけると幸いです。

sutara_lumpursutara_lumpur 2012/11/05 14:48 @syoshinsya
メールで返信しました。
申し訳ありませんが、現状も、今後も、機能を追加する予定はありません m(_ _)m

takachintakachin 2012/12/28 15:02 毎度、お世話になっております。
Cake2.2 で新たなソースをコーディングしております。
ちょっと調べたいことがあって、閲覧したのですが、
デモ画面のサンプルが動かない事象になっております。(ブラウザ: Google Chrome)エラー事象を見ると、
「Failed to load resource: the server responded with a status of 500 (Internal Server Error) 」
となってます。急ぎの要望ではございませんので、お手すきの時に確認してみてください。

sutara_lumpursutara_lumpur 2012/12/28 17:05 @takachin さん
ご指摘ありがとうございます。
こちらで検査してみます m(_ _)m

sutara_lumpursutara_lumpur 2012/12/30 09:48 @takachin さん
すみません、こちらからお聞きしたいことがあります。
動かないものは何でしょうか?

・Web上で私が公開しているajaxComboBoxのデモ
・CakePHPに対応させて公開しているappフォルダ

もしくは、これをtakachinさんがダウンロードしたもの、でしょうか。
データベースに使っているのはMySQLかSQLiteかも教えてください m(_ _)m

takachintakachin 2013/01/08 13:18 あけましておめでとうございます。
今年もよろしくお願いします。

先日の件なのですが。
いや・・・このページの上位に載っているリンクページにアクセスしようと思ったら、エラーになってたので。
先ほど確認したら、閲覧ができたので問題ございません。
お騒がせして、申し訳ございませんでした。

sutara_lumpursutara_lumpur 2013/01/08 15:57 @takachin さん
お気になさらず (^ ^;)
もしかしたら、レンタルサーバさんで障害が起こってたのかもしれませんね。

takachintakachin 2013/01/17 13:08 いつもすみません。また、わからないことが発生いたしまして。
AjaxComboboxで、初期条件を設定したいのですが、どのように引数を渡してやれば
「q_word」に配列の条件を付与できるのかが、わかりません。
無理やりCakeに条件を付与するのも考えたのですが、おそらく設定出来る仕様だと思いまして
質問いたしました。ご教授のほど、よろしくお願い致します。

sutara_lumpursutara_lumpur 2013/01/17 17:15 @takachin さん
『初期条件』とは『初期値』のことでしょうか?
それならば、クライアント側(ajaxComboBox)で複数の値を指定することはできません。
データベースの値と結び付けないのであれば、普通のテキストボックスの初期値として
$('#textbox').val('aaa bbb ccc');
のように、空白区切りで複数の値を指定すればいいと思います。

【参考】
初期値設定の例
http://www.usamimi.info/~sutara/ajaxComboBox/#sample04

takachintakachin 2013/01/22 15:37 ご回答ありがとうございます。
直接テーブルを参照していたので、最初の段階で条件設定ができれば…と思ったのですが。

(例)
ユーザーマスタ
CREATE TABLE `huga`.`users` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) NOT NULL COMMENT '名前',
`kana` varchar(255) NOT NULL COMMENT 'フリガナ',
`loginid` varchar(255) NOT NULL COMMENT 'ログインID',
`password` varchar(255) NOT NULL COMMENT 'パスワード',
`delete_flag` int(11) NOT NULL DEFAULT '0' COMMENT '削除フラグ(削除された:1 削除していない:0)',
`created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '入会日',
`unsubscribed` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '退会日'
);

上記のようなテーブルの場合、初期条件として「WHERE users.delete_flag = 0」
みたいな条件を埋めたかったのですが、難しそうなのですね。

コントローラ or モデルで条件を絞って、JSONデータを渡すように致します。
ご教授ありがとうございました。

takachintakachin 2013/02/07 21:15 度々すみません。まだ、調べきれていないのでなんとも言えないのですが・・・。
こんな事象が出ていればと思い、先に記述させていただきます。
あるマスタ情報のサブ情報を表示させようと思い、設定を記入したのですが
予期せぬデータが出力されていまして、sub-infoのタグ(<dd>)内に
「function (b) { var a = this.indexOf(b); if (a != -1) { this.splice(a, 1) } return this }」
というjsソースが出力されてしまいます。(なぜか、<dt>には「remove」と記述されてしまいます)
'show_field'には、そのようなキーワードを指定していないのですが、このような事象が考えられる箇所
はございますでしょうか?
ご教授、よろしくお願い致します。
また、こちらでも調査した上で、わかるようなことがございましたら、ご連絡致します。

sutara_lumpursutara_lumpur 2013/02/07 21:21 @takachin さん
了解しました。
現在取り込んでいて、すぐには返信できないと思いますが、どうぞお待ちください。

takachintakachin 2013/02/07 21:26 すみません。こっちの別で定義している、jsファイルに同様のソースが存在していたので、確認します。
申し訳ございません。

sutara_lumpursutara_lumpur 2013/02/07 21:29 @takachin さん
分かりました。

mashtowermashtower 2013/09/08 17:18 初めまして,便利なツールをありがとうございます。
3.6から7.1にしたら動かなくなりました。
firebugでechoさせてみたところ
queryDB()の$this->query[0]のsql文が
SELECT * FROM "score" ORDER BY LIMIT 10 OFFSET 0
となっており by 句にカラム名がないのでNGです。
validateParam()での $_GET['order_by']の値が文字列”very_day,ASC”です。
アレイを想定しているプログラムだと思うのですが,指定間違えていますか?
指定元は
$('#target-game').ajaxComboBox(
'../script/jquery.ajaxComboBox.php',
{
'db_table' : 'score',
'field' : 'very_day',
'order_by' : 'very_day',
'sub_info' : false,
'navi' : 1,
'navi_simple' : true
}
}
);
宜しくお願いします。

sutara_lumpursutara_lumpur 2013/09/09 09:17 id:mashtower さん
おそらく、お使いのjQueryのバージョンが低いのではないかと思います。
"jQuery1.10"では下記のURLの"Examples"の3番目のように、多次元のオブジェクトや配列をサーバ側に送信することができます。
しかし、古いjQueryではそれができませんでした。

http://api.jquery.com/jQuery.get/#entry-examples

もし id:mashtower さんの環境に差支えがなければ、jQueryを最新版に更新していただけないでしょうか。
この解決策が間違っていたり、他にご質問があればお気軽にコメントやメールをください m(_ _)m

mashtowermashtower 2013/09/09 15:08 @sutara_lumpurさん ありがとうございます。
バージョンは1.1.1でした。暇を見てアップしてみます。
もう一つあります。例えば
選択時にはサブインフォに正式名称を出し
選択後には略称を使用したい場合,
正式名称はshow_field,略称はhide_field
に指定すればよいと思うのです
がこうした使い方は正しくありませんか?
宜しくお願いします。

sutara_lumpursutara_lumpur 2013/09/09 17:49 id:mashtower さん
mashtowerさんの意図したとおりに表示されるならば、その使い方でも別に問題ないと思います。

mashtowermashtower 2013/09/09 17:57 あっ済みません,非表示項目にアクセス出来ないなのが悩みの種なんですが,
そのご返事からすると非表示項目もsub_infoの属性からアクセス出来るのが
可能なわけですね。
show_field:'regular_name',
hide_show:'ryaku_name'
見たいな指定でよいのでしょうか?

sutara_lumpursutara_lumpur 2013/09/09 18:02 id:mashtower さん
> 非表示項目もsub_infoの属性からアクセス出来る
いえ、それはできないと思います。
私は、mashtower さんが独自に処理を追加したのかと勘違いしていました (^ ^;)

mashtowermashtower 2013/09/09 18:48 @sutara_lumpur さん
分りました。ありがとうございました。
また何かありましたら宜しくお願いします。
便利なツールをありがとうございますm(_._)m

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。