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

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

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

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

HTML

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

Q&A

解決済

1回答

524閲覧

チェックボックスによるフィルタ検索機能を追加

kissdesign_shop

総合スコア12

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2018/07/12 16:32

前提・実現したいこと

お世話になります。
fc2カートにてショッピングページを運営しております。
チェックボックスによるフィルタ検索機能を追加しようとしたのですが、
上手くいきません。

/?word=の後に、zk+FK+{テキストボックスの語句}とならないと
検索されないようですので、そうなるようにしたいです。

htmlは書き換えられますが、javaは仕様で書き換えられないので、
別ファイルにして読み込ませようと考えております。
アドバイスいただけましたら、お願いいたします。

大元のスクリプトファイルのコードは長すぎてここでは記述できませんが、
必要でしたらご提供いたしますので、ご連絡くださいませ。

発生している問題・エラーメッセージ

https://*****.cart.fc2.com/?word=zakka&word=fuku&word= となってしまい、うまく検索結果が出てきません。

該当のソースコード

html

1 <li class="search"> 2 <form name="form" method="get" action="{search.url}"> 3 <input type="checkbox" name="word" value="zakka" />雑貨 4 <input type="checkbox" name="word" value="fuku" />5 <input type="text" name="word" value="{search.word}" /> 6 <input type="submit" value="検索" class="submit" /> 7 </form> 8 </li>

試したこと

<input type="checkbox" name="word" value="zakka" /> のnameを変えたりしましたが、必ず値が&で追加されて、検索されません。 <input>~部分のコードを<fieldset>でまとめてもうまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

余計なデータをおくってもいいなら、こんな感じ

javascript

1<script> 2document.addEventListener('submit',function(e){ 3 var t=e.target; 4 e.preventDefault(); 5 if(t.elements["word"]) t.removeChild(t.elements["word"]); 6 var v=[].map.call(t.elements["w"],function(x){ 7 return (x.type=="text" || x.type=="checkbox"&&x.checked)?x.value:""; 8 }).filter(function(x){return x!==""}).join(" "); 9 var word=document.createElement("input"); 10 word.type="hidden"; 11 word.name="word"; 12 word.value=v; 13 t.appendChild(word); 14 t.submit(); 15}); 16</script> 17<form method="get"> 18<input type="checkbox" name="w" value="zakka" />雑貨 19<input type="checkbox" name="w" value="fuku" />20<input type="text" name="w" value="あああああ" /> 21<input type="submit" value="検索" class="submit" /> 22</form>

追記

javascript

1<script> 2document.addEventListener('submit',function(e){ 3 var t=e.target; 4 e.preventDefault(); 5 var f=document.querySelector('#f0'); 6 if(f) f.parentNode.removeChild(f); 7 var v=[].map.call(t.elements["w"],function(x){ 8 return (x.type=="text" || x.type=="checkbox"&&x.checked)?x.value:""; 9 }).filter(function(x){return x!==""}).join(" "); 10 var f=document.createElement("form"); 11 f.setAttribute("id","f0"); 12 f.setAttribute("action",t.getAttribute("action")); 13 f.setAttribute("method",t.getAttribute("method")); 14 f.style.display="none"; 15 var word=document.createElement("input"); 16 word.type="text"; 17 word.name="word"; 18 word.value=v; 19 f.appendChild(word); 20 document.querySelector('body').appendChild(f); 21 f.submit(); 22}); 23</script> 24<form method="get" action="x.php"> 25<input type="checkbox" name="w" value="zakka" />雑貨 26<input type="checkbox" name="w" value="fuku" />27<input type="text" name="w" value="あああああ" /> 28<input type="submit" value="検索" class="submit" /> 29</form>

投稿2018/07/13 01:10

編集2018/07/13 06:26
yambejp

総合スコア114769

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

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

kissdesign_shop

2018/07/13 05:51

ご回答ありがとうございました。 試してみましたが、うまくいきませんでした。 /?w=zakka&w=fuku&w=あああああ&word=zakka+fuku+あああああ 上の部分の「w=zakka&w=fuku&w=あああああ&」がいらないのですが、 どうにもわからないです。
yambejp

2018/07/13 06:25

> 余計なデータをおくってもいいなら と前置きしてあるとおりですがやはりいらないとなると 追記分で対応ください
kissdesign_shop

2018/07/13 06:32

ご回答、ありがとうございました! 余計なデータがあっても検索結果としてでうまくいくのであればよかったのですが、 やはりだめでした。 追記分の物でうまくいきました! 本当にありがとうございましたm(u_u)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問