質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

5回答

935閲覧

同じURLで検索の内容によってサイト内の表示を変える

MeB

総合スコア104

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2017/11/02 01:33

編集2017/11/02 02:00

同じURLで検索の内容によってサイト内の表示を変えることは可能でしょうか?

googleやyahooの検索エンジンで検索

サイトリンクをクリック

検索項目によってサイトを表示


「りんご」と検索して自分のサイトリンクをクリックするとりんごが出てくる
「ばなな」と検索した場合はばななを表示

(URLの最後に検索したもののパラメータ等がつくのは構いません。)
実際のデータはcsvファイルの中です。

その際1つのファイルにまとめてデータを入れておいたほうがいいのでしょうか?
それともcsvファイル自体を複数個に分けたほうがよろしいでしょうか?

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takito

2017/11/02 01:48

「検索」とは、googleやyahooなどの検索エンジンを経由するという意味ですか?
MeB

2017/11/02 01:49

あ、そうです。そういう意味です。言葉が足らずすみません。
webappbeginner

2017/11/02 01:52

サーバー側にしかるべき実装をすればそう難しくはない内容ですが、ご質問はHTML(Javascript)だけでなんとかしたいというご主旨でしょうか。いずれにせよ、「検索」というのが、何から、何を、何が、検索するのかを明確にしていただいたほうがいいとおもいます。
MeB

2017/11/02 01:55

masaya_ohashi様のいうようにsearch?q=りんごのようで全然大丈夫です。
MeB

2017/11/02 01:55

HTML(Javascript)だけでなんとかしたい・・・その通りでございます。
MeB

2017/11/02 02:06

複雑なものでなければ大丈夫です
guest

回答5

0

ベストアンサー

調べてみてわかったことですが、GoogleやYahooなどの大手検索サイトは「検索対象のサイトに検索情報を渡さなくなった」ということです。検索情報はGoogleやYahooの提供する「アナリティクスツール」から取得せよ、との方針なので、ページ上のスクリプトやPHP等で「どんな検索ワードでこのページに来たか」を取得するのはどうあがいても無理です。

投稿2017/11/02 02:30

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MeB

2017/11/02 02:37

なるほど・・・ わざわざ調べてくださいありがとうございます! GoogleやYahooの提供する「アナリティクスツール」から取得 これで調べて見ます。(どうやるのか検討もついてませんが!)
masaya_ohashi

2017/11/02 02:39

あー、アナリティクスツールは「アクセス解析」のためであり、「集計を見るためのツール」であって、1アクセスの情報を取れるものではないので、ページの表示内容を変えるために使うことは残念ながら無理ですよ。
MeB

2017/11/02 02:41

完全に見るだけなのですね・・・ ありがとうございます。
masaya_ohashi

2017/11/02 02:43

結論として重要なのは「JavaScriptだろうがPHPだろうがなにやっても取れない」ということなので、そもそも「別ページで分けて検索に別々に載るようにする」しか「検索内容から表示内容を変える」という要望の実現は無理かと思います。
masaya_ohashi

2017/11/02 02:52

「別ページで分けて検索に別々に載るようにする」という方法はte2jiさんの回答の追記部分が説明してくれているので、あちらを参考にしてください。
guest

0

注意 どうやら私のやり方はいまは不可能のようです…申し訳ない。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11151062396

どこかの検索サイトからあなたのサイトに来た、ということを調べるにはdocument.referrerが使えます。リファラ情報から「どんなワードで検索してきたか」を取り、あとはcsvをajaxで取得して画面を書き換える、というのが流れになるかと思います。

JavaScript

1var referrer = document.referrer; 2 3// referrerを手軽に分解するためにダミーのaタグを生成 4var dummyA = document.createElement("a"); 5dummyA.href = referrer; 6 7var searchWord = ''; 8if(dummyA.hostname.indexOf('google') != -1) { 9 // google検索から来たと思われる 10 searchWord = decodeURIComponent(dummyA.q.split('=')[1]); // googleでは検索ワードはqに入っている 11} 12if(dummyA.hostname.indexOf('yahoo') != -1) { 13 // yahoo検索から来たと思われる 14 searchWord = decodeURIComponent(dummyA.p.split('=')[1]); // yahooでは検索ワードはqに入っている 15} 16// 他の検索サイトも同様に対応 17 18$.ajax({ 19 type:'GET', 20 url:'list.csv', 21}).done(function(data) { 22 // dataはcsvファイルの中身(テキストデータ)であることを想定 23 // csvの先頭列は検索ワードに紐付くものと想定 24 25 // csvを行単位で分割 26 var tmp = data.split("\n"); 27 for(var i=0;i<tmp.length;i++){ 28 var columns = tmp[i].split(','); // csv1行を,で分割 29 if(columns[0] == searchWord) { 30 // 検索ワードと一致した行を発見 31 } 32 } 33});

投稿2017/11/02 02:10

編集2017/11/02 02:34
masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masaya_ohashi

2017/11/02 02:47

もちろん「自サイト内に自作検索フォームを置いて」「検索ページのリファラから検索ワードを得る」ことは可能ですので、何かの際に役立てたら幸いです。
guest

0

質問が修正され、以下の回答は質問主旨と違うことが確認されました^^;
追記として修正後の質問に対しての回答を記述します。

「同じURL」というのが
http://example.com/index.php?search=hoge
のように GET でサーバにデータを送信したくない。つまり
http://example.com/index.php
へアクセスするけど、検索文字列によって表示を変更したいということであれば、POST で検索文字列をサーバに送信し、その内容で表示内容を変化させる仕組みにすれば良いです。

サーバサイドで何らかの表示プログラムを走らせれば良いので、データの持ち方は、その表示の仕様によって決定するのが一般的です。

追記
検索サイトに異なった内容を登録させるには、それぞれが独立した指定方法で到達できるであることが必要です。
今回の質問内容からすると、パラメータが付くことは問題ないようなので、「パラメータ付きURL」で検索サイトに登録することが一般的です。
ので、結論としては、「検索文字列をパラメータに持ち、そのパラメータ内容で表示するページをフロントサイドのみで作成」すれば良いことになります。
csv ファイルを適当に加工して表示する JavaScript のライブラリはいくつかあるので、GET パラメータを元に、ファイルを切り替えるか、csv ファイルをすべて読み込み表示を制御するか、表示仕様とメンテナンス性で判断すれば良いと思います。

投稿2017/11/02 02:01

編集2017/11/02 02:42
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MeB

2017/11/02 02:07

HTML(Javascript)だけで完結させたいのですが厳しいでしょうか
退会済みユーザー

退会済みユーザー

2017/11/02 02:30

回答を追記しまいた。それほど難しいことではないと思いますが、csv をどのように持つのが良いかは質問からは判断できません。
guest

0

できますね。

検索キーによって結果を変えるならばcsvではなくてDBの方が良いと思いますが
どうしてもcsvでやるのだとしてファイルは1つで良いのではないでしょうか。

どんなデータを管理するのかにもよりますし、検索キーがいくつあるのか、どれぐらいのデータ量が見込まれるのか、など色々ありますが
内容を見ている限りでは量も内容も大きなものではなさそうですし
ファイルだと対象を探すのが面倒な感もありますが、とりあえす1ファイルで良いのではないでしょうか。

ちなみにサーバサイドは何言語で書くのですかね?
何にしてもDBの方が絶対いいですよ。

投稿2017/11/02 01:47

yuki-saito

総合スコア928

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MeB

2017/11/02 01:52

訳ありでcsv固定です・・・ 実際に変える内容自体は三種類だけです。 4x10のtable中のテキスト変えるだけです。
yuki-saito

2017/11/02 02:09

それならば複数ファイルで良い気がしますね。 キーを付けたファイルがあれば可変的にアクセスもできるでしょうし・・・
guest

0

りんごと検索してりんごが、ばななと検索してばななが無条件ででてくるなら
検索していないのと同じでは?
また本当に検索するとしてりんごが自サイト内から検索するもので
ばななはそうではない(?)とテキストの文字面からはジャッジできません。

投稿2017/11/02 01:43

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問