2011-12-09 13 views
-1

これは私の頭をしばらく叩いていましたが、私は他のフォーラムに投稿しましたが、情報はスケッチ最高です。助けられる。他のページに表示されるhtmlフォーム検索クエリ文字列 - PHPがタスクを実行するために

のscenerio

私は、検索フィールドにHTMLのランディングページを持っています。こちらのフォームは、次のとおりです。

<form method="get" action="URL TO EXTERNAL SEARCH" target=content> 

    <fieldset> 


      <input type="text" class="text" name="keywords" value="Search" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"maxlength="30" /> 


      <input type="image" src="images/topnav/btn_search.png" class="button" /> 
     </fieldset> 
    </form> 

だから、明らかに照会文字列を受け取り、それを文字列をプロセッサと順番に "という名前のiframe内にそれを表示するHTMLページとして結果を返す外部ドメインに行くオフ同じページ内に「コンテンツ」が表示されます。

<iframe src="DEFAULT CONTENT" name="content" width="803" height="1200" align="left"> 

御馳走作品、しかし

問題

私はiFrameを含むが、検索フィールドが含まれていない他のページを持っています。私はを達成するために必要なもの

私はiFrameを含み、別のHTMLページ上のiframe内に表示されないHTMLページ内の検索文字列を入力する必要があります。

私はjavascript/jqueryを使用すると思っていましたが、クロスサイトのセキュリティ上の問題のためにPHPが動作しませんでした。 私はそれができますが、ノウハウが不足していることを知っています。

ご意見をいただければ幸いです。

ありがとう

** * ** * ** * ***UPDATE* ** * ** * ** * ** * ** * ****これまでに提案のため

乾杯が、私はいくつかのクエリを持っている:答えのための

おかげで、私は質問のカップルを持っているので、自分の無知を言い訳。

"landingpage.html"には検索ボックスがありますが、検索結果を表示するIframeはありません。 "displaypage.html"には、検索結果を表示するための検索ボックスとIframeが含まれています。

"displaypage.html"は正常に動作します。クエリ文字列をEXTERNALサーバーに送信します。EXTERNALサーバーは、 "displaypage.html"でIframeに送信するHTMLページを返します。

"landingpage.html"は検索クエリを "mysearchhandler"に指示する必要があります。php "を検索して結果のHTMLページを" displaypage.html "にあるIframeに返します。

これは私が必要とするものです.Iframeを持たないすべてのページに検索オプションを設定する必要があります。 "displaypage.html"に指示することができます

私の問題はPHPの理解が不足しているため、助けてくれた人には非常に感謝していますが、可能であれば関連するページにコンテキスト内でコードを配置することができますコードがどこに行き、何が行われているのかを理解することができます。

私はコードを支払うことを検討している段階を得ていますが、私は


誰か?あなたは何ができるか


答えて

-1

PHP経由で検索を処理し、予想されるページを返しユーティリティページを持っています。

<form method="get" action="mysearchhandler.php" target=content> 
    <input type="hidden" name="currentPage" value="thispage.php" /> 

そしてmysearchhandler.phpで、あなたは可能性があり、外部検索ページから情報をプルダウンするために、ユーザHTTP_GET http://www.php.net/manual/en/function.http-get.php。 http_parse_messageで使用するhttp://www.php.net/manual/en/function.http-parse-message.php

隠しフィールドを使用して、戻すページを指定し、検索データを検索するページを更新します。

シンプルmysearchhandler.php:

$search = clean($_POST['keywords']); 
$currentPage = clean($_POST['currenPage']); 

$url = <external search url with get parameters> 
$searchResults = http_parse_message(http_get($url))->body; 

//Need to validate $currentPage to prevent faked user input 
include($currentPage); //Depending on your file system you may need to adjust this 

次に、あなたのページに追加できます。

if(exists($searchResults)) 
{ 
    <Code to display the results> 
} 
+0

一つの欠点は、今、ブラウザに表示されたURLは、 "mysearchhandler.php" になるということです。それが問題なら、それを修正できる調整がいくつかあります。 – Chris

+0

search.phpのように見えるように、ページ名をsearch.phpに変更できますか?keywords = xxx –

関連する問題