0

需要 JS 帮助的 PHP 开发人员!我对 JS 很陌生,无法弄清楚这一点。

我有一个小的 jQuery 插件gSearch http://gsearch.scottreeddesign.com/index.html在您的页面中执行 Google 搜索。它不是使用 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

尝试这个

$('#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 回答
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() 停止它。之后,我们将 gSearch 应用于 id 的元素search-results(返回的结果将附加到该元素)。我们在对象请求中定义了一些参数。这应该足够了。

于 2012-12-19T21:08:13.090 回答