楽天ウェブサービス初心者入門講座 に関する質問
【質問】
はじめまして。
御サイトにて色々な情報を提供してくださり、大変感謝いたしております。
申し訳ございませんが、楽天ウェブサービスのキーワード検索について、質問が御座います。
ItemSearch.phpにて、検索ワードを指定して表示する方法は分かりました。
その後、sample2,3,4,5と進めていくうちに、検索キーワードボックスにどのような文字を入力しましても、ItemSeach.phpにて指定した検索ワード(エンコードしているもの)しか検索結果に表示されません。
検索キーワードボックスに入力したワードを検索に使うためには、ItemSearch.phpの中をsample1とsample4,5では変更する必要があるのでしょうか?
お忙しいとは存じますが、ご回答のほどよろしくお願いいたします。
【回答】
ご質問の内容で、「ItemSeach.phpにて指定した検索ワード」という部分がありますが、 ItemSeach.php側では、キーワードを指定しないので、その辺りが気になります。
まず、「ItemSearch.php」で、キーワードの部分が、以下のようになっているか、ご確認ください。
$url .= " keyword=".rawurlencode($keyword);
↑この部分は、キーワードを受け取っているだけです。
ItemSeach.php側でキーワードは指定しないので、注意してください。
実際にキーワードの指定を行なっているのは、「item.js」側です。
sample003までは、プログラムの中に、検索キーワードを直接書いています。
var paramList = "keyword=" + encodeURIComponent("ヨーグルト");
でも sample004 からは、テキストボックスの値を取得するようになっています。
var paramList = "keyword=" + encodeURIComponent($F('txtWord'));
$F('txtWord') の部分で、テキストボックスの値を取得しています。
これは prototype.js の機能です。だから prototype.js を適切に配置しないと、動きません。
もちろん sample004 の index.html には、テキストボックスを用意する必要があります。
【補足】
その後、読者様からのメールで、ItemSeach.php側に、直接キーワードを記述していたことがわかりました。
&keyword=%E3%82%AB%E3%83%8B
最初に ItemSearch.phpを作成する時、パラメーターを含めたサンプルの動作確認をした後、そのまま sample2,3,4,5にも使ってしまったようです。