ヘアスタイルをサイト内で絞り込み検索させたいと思っております。
下記のサイトのような感じです。
http://salon.yahoo.co.jp/hairstyle/
http://www.vi-vi-vi.com/style/
http://style.ispot.jp/
1、検索フォームで検索開始
2、検索結果(ヘアスタイル画像)。画像をクリック
3、ヘアスタイル詳細ページ
というようなものをと思っております。(php,javascript,データベースの有無などなど)
しかしながらどのようにしたらよいのか分からず、質問させていただきました。
カテゴリーもjavascriptの個所でよいのかもわかりませんでした。
どのような手法が良いか、また、このようなシステムを制作していただけるところをごぞんじでしたら
ご紹介していただけると助かります。
No.4ベストアンサー
- 回答日時:
(XmlSelectBox1.jsの中身)
-その(2)-------------------------------------
//SELECTBOXをどんどん作成
function select_change(selectbox,xml,outarea){
return function(){
var items=[];
items=getitem("/descendant-or-self::node()/child::" + selectbox.name
+ "[contains(self::node()/text(),'"
+ selectbox.value + "')]/child::*",xml);
if(items.length>0){
if(selectbox.parentNode.nextSibling){
if(selectbox.parentNode.nextSibling.lastChild.getAttribute("name")==items[0].nodeName)
outarea.removeChild(selectbox.parentNode.nextSibling);
}
var next_contener=document.createElement("div");
var next_selectbox=document.createElement("select");
next_selectbox.setAttribute("name",items[0].nodeName);
next_selectbox.add(new Option(items[0].nodeName+"を選択してください","default"),null);
for(var i=0;i<items.length;i++){
next_selectbox.add(new Option(items[i].firstChild.nodeValue,items[i].firstChild.nodeValue),null);
}
//イベント追加
next_selectbox.onchange=select_change(next_selectbox,xml,outarea);
next_contener.appendChild(document.createTextNode(items[0].nodeName+":"));
next_contener.appendChild(next_selectbox);
if(selectbox.parentNode.nextSibling){
outarea.insertBefore(next_contener,selectbox.parentNode.nextSibling);
}else{
outarea.appendChild(next_contener);
}
next_selectbox.selectedIndex=0;
}else{
if(typeof callback_func != "undefined")
callback_func(selectbox.getAttribute("name"),selectbox.value);
}
}
}
//XPATHで検索
function getitem(xpath,xml){
var nodeValues=[];
var NodeList,Nodelength;
try{
NodeList = xml.evaluate(xpath,xml,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
}catch(e){
NodeList = xml.selectNodes(xpath);
}
Nodelength=NodeList.snapshotLength||NodeList.length;
for(var i=0;i<Nodelength;i++){
nodeValues[i]=(typeof(NodeList.snapshotItem)==='undefined')?NodeList.item(i):NodeList.snapshotItem(i);
}
return nodeValues;
}
}
yyr446様
丁寧にサンプルを添えて頂きましてありがとうございました。
ほんと、様々な方法があるのですね。
参考にさせて頂きますので、ありがとうございました。
No.3
- 回答日時:
続き
XmlSelectBox1.jsの中身です。
※全角空白は半角空白にしてね。
※(XmlSelectBox1.js使い方)
new xmlselectbox(selector,xmlpath,key,callback)
selector:セレクトボックスを書き出す領域のCSSセレクター指定
xmlpath:読み込むXMLのファイル名(パス名)
key:最初のセレクトボックスの項目名
callback(省略可):コールバック関数
引数(最後のSELECTBOXのname,最後のSELECTBOXのvalue)
(XmlSelectBox1.jsの中身)
-その(1)-------------------------------------
function xmlselectbox(id,xml_url,key,func){
var callback_func=func;
var outarea=document.querySelector(id);
var xml={};
var items=[];
var XHR= new XMLHttpRequest();
while(outarea.hasChildNodes()){
outarea.removeChild(outarea.lastChild);
}
//XMLのロード(エラー処理省略)
XHR.open("GET",xml_url,false);
XHR.send(null);
if(XHR.status == 200) xml=XHR.responseXML;
//if(xml.hasOwnProperty("SelectionLanguage")) //IEは使えない
if(typeof xml.hasOwnProperty === "undefined") //とりあえず
xml.setProperty("SelectionLanguage","XPath"); //IEにのみ必用
//最初のSELECTBOX生成
items=getitem("/descendant::node()/child::"+key,xml);
var first_contener=document.createElement("div");
var first_selectbox=document.createElement("select");
first_selectbox.setAttribute("name",key);
first_selectbox.add(new Option(key+"を選択してください","default"),null);
for(var i=0;i<items.length;i++){
first_selectbox.add(new Option(items[i].firstChild.nodeValue,items[i].firstChild.nodeValue),null);
}
//イベント追加
first_selectbox.onchange=select_change(first_selectbox,xml,outarea);
first_contener.appendChild(document.createTextNode(key+":"));
first_contener.appendChild(first_selectbox);
outarea.appendChild(first_contener);
first_selectbox.selectedIndex=0;
-----------------------続く
No.2
- 回答日時:
続き
HTMLはこんなふうです。
※レイアウトはCSSで自分のページに合うようにしてね。
※全角空白は半角空白にしてね
(HTML)
-------------------------------------
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Xml Select Box</title>
<style type="text/css">
body {color:#000000;background-color:#E0FFFF;}
#sel1 div{float:left;padding:10px;;background-color:#CCFF33;}
</style>
<script src="XmlSelectBox1.js" type="text/javascript" charset="UTF-8"></script>
</head>
<body>
<p><h2>Xml Select Box の利用例</h2>
<div style="padding:10px;">
<button onclick="go();">セレクトボックスを生成</button>
</div>
<div id="sel1"></div>
<div id="imagearea" style="clear:both;text-align:center;"></div>
</p>
<script type="text/javascript">
function go(){
var myselectbox=xmlselectbox('#sel1','/kamigata.xml','性別',
function(selectname,value){
var imgarea=document.querySelector("#imagearea");
while(imgarea.hasChildNodes()){
imgarea.removeChild(imgarea.lastChild);
}
var image=document.createElement("img");
image.setAttribute("src",value);
image.setAttribute("alt",value);
imgarea.appendChild(image);
}
);
}
</script>
</body>
</html>
お次は、XmlSelectBox1.jsの中身です。 ....続く
No.1
- 回答日時:
画像を選択する絞込みの条件を、事前に階層的に決められるのであれば、その構造を
XMLファイルとしておき、それを読み込んで、JavascriptでHTMLのセレクトボックスを
順次作成して選ばせるというサンプルがあります。
この方法だと検索エンジンも、PHPやデータベースもいっさい不用です。
例えば、こんなXMLを準備します。
(kamigata.xml)
------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<髪型サンプル>
<性別>男
<職業>学生
<商品>かりあげ
<画像>xx1.gif</画像>
</商品>
<商品>5分がり
<画像>xx2.gif</画像>
</商品>
<商品>2分がり
<画像>xx3.gif</画像>
</商品>
<商品>5厘がり
<画像>xx4.gif</画像>
</商品>
</職業>
<職業>社会人
<商品>ちょんまげ
<画像>xx5.gif</画像>
</商品>
<商品>パンチパーマ
<画像>xx6.gif</画像>
</商品>
<商品>まるぼうず
<画像>xx7.gif</画像>
</商品>
</職業>
</性別>
<性別>女
<職業>学生
<商品>おかっぱ
<画像>xx8.gif</画像>
</商品>
<商品>三つ編み
<画像>xx9.gif</画像>
</商品>
<商品>かりあげ
<画像>xx10.gif</画像>
</商品>
</職業>
<職業>OL
<商品>くるくるパーマ
<画像>xx11.gif</画像>
</商品>
<商品>ストレートパーマ
<画像>xx12.gif</画像>
</商品>
<商品>ソバージュ
<画像>xx13.gif</画像>
</商品>
</職業>
<職業>主婦
<商品>日本髪
<画像>xx14.gif</画像>
</商品>
<商品>たまねぎヘア
<画像>xx15.gif</画像>
</商品>
</職業>
</性別>
</髪型サンプル>
HTMLは...続く
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- その他(IT・Webサービス) MacとWindows Google検索した時のURL表示の違いについて 1 2022/11/17 10:38
- その他(IT・Webサービス) グーグル検索に「カテゴリー」機能が追加されたら、便利ですか。それとも不必要ですか。 2 2023/02/13 11:56
- その他(SNS・コミュニケーションサービス) Yahoo!とGoogle検索のしくみの違いを教えてください 2 2022/08/14 01:53
- ハッキング・フィッシング詐欺 ネット検索で出る自分の名前を削除したい 3 2022/05/07 13:44
- Google Maps iPhoneのGoogle検索窓を通常の大きさに 戻す方法を教えて頂けませんか?(切実) 日本全国の 2 2022/10/02 02:08
- Google+ ネットで晒されてないか 3 2023/04/20 02:28
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javascriptで指定した日付と時...
-
textareaに画像を表示したい
-
1枚の画像をクリックすると複数...
-
画面の表示位置を指定させて表...
-
【java】背景画像を一定時間で...
-
1枚の画像をクリックして複数の...
-
Gifアニメ、最後のコマに行った...
-
透過pngの透明部分以外をクリッ...
-
p5jsについて
-
クリッカブルマップで切り替え...
-
クリッカブルマップの一部分だ...
-
画像を指定座標まで移動させたい
-
lightbox2をiframeから外に表示...
-
ボタンをクリックした時に、キ...
-
iframeからcolorboxの呼び出し
-
MAX関数を使ってからLEFT JOIN...
-
Javascript初心者|jQueryの.va...
-
JavaScriptで変更した属性の元...
-
フルスクリーン表示についての応用
-
getElementByIdの戻り値がnull...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
textareaに画像を表示したい
-
画像の重なりの順序を代える方...
-
Gifアニメ、最後のコマに行った...
-
Javascriptで指定した日付と時...
-
JavaScript スライドの画像にリ...
-
クリッカブルマップの一部分だ...
-
透過pngの透明部分以外をクリッ...
-
1枚の画像をクリックすると複数...
-
画像をフォルダに入れれば表示...
-
画像をクリックしてその地点の...
-
表示する画像をファイル名を受...
-
WEBページ立ち上げ時に1回のみ...
-
lightbox2をiframeから外に表示...
-
【java】背景画像を一定時間で...
-
javascriptで毎月替わる画像
-
1枚の画像をクリックして複数の...
-
jQueryスライドショー画像への...
-
スワップイメージが上手く動作...
-
javascriptのcontentEditableで...
-
jQueryで特定のURLの時のみ表示
おすすめ情報