0

PHP 開発者は JS の助けを必要としています! 私はJSにかなり慣れていないので、これを理解できません。

ページ内で Google 検索を実行する小さな jQuery プラグインgSearch http://gsearch.scottreeddesign.com/index.htmlがあります。POST/GET 機能が組み込まれていないため、関数パラメーター内で「検索語」を定義する必要があります。私はそれを変更しようとしています。

私は2つのページを持っています:

search.htmlには以下が含まれます。

<form action="results.html">
  <input type="text" name="q" id="term">
  <input type="button" id="search_button" onclick="this.form.submit();">
</form>

results.htmlには以下が含まれます。

$("#search-results").gSearch({
    search_text : 'brian griffin',
    count : 4,
    site : 'wikipedia.org',
    pagination : false  
});

そして体内で:

<div id="search-results"></div>

ここで、フォームから検索用語を取得し、それを変数として.gSearch関数に渡す必要があります。これについてどうすればいいですか?URLパラメーターを取得/返す方法に関する投稿を見ましたが、それを変数に変換して別の関数に渡す方法を説明しているようには見えませんか? 純粋なPHPで目を閉じてこれを行うことができますが、JSは初めてです!

4

3 に答える 3

0
$('form').on('submit', function(e){
    e.preventDefault(); //stop default form submit
    $('#search-results').gSearch({
        search_text: $('#term').val(), //the term to search
        count: 4, //how many
        site: 'wikipedia.org', //a site to match the search against
        pagination: false //whether or not to use pagination
    }); 
});

フォームの送信をキャプチャし、preventDefault() で停止します。その後、id を持つ要素に gSearch を適用しますsearch-results(返された結果が追加されます)。オブジェクトリクエスト内でいくつかのパラメータを定義します。これで十分です。

于 2012-12-19T21:08:13.090 に答える
0

これを試して

$('#search_button').on('click', function(e) {
    e.preventDefault();

    var $search = $('#term').val();

    // Assign it to the gSearch
    $("#search-results").gSearch({
        search_text: $search,
        count: 4,
        site: 'wikipedia.org',
        pagination: false
    });


});​
于 2012-12-19T21:09:35.977 に答える
0

JavaScript でクエリ文字列のキーと値のペアを読み取る組み込みの方法はありません。クエリ文字列から値を取得するには、次を解析location.searchします。

var searchTerms = "";
if (/\bq=([^&]+)/.test(location.search)) {
    searchTerms = decodeURIComponent(RegExp.$1);
}
$("#search-results").gSearch({
    search_text : searchTerms,
    count : 4,
    site : 'wikipedia.org',
    pagination : false  
});

JavaScript から POST 値をまったく読み取ることはできません。これらはサーバー側でのみ使用できます。

于 2012-12-19T21:48:07.277 に答える