如何存储要作为查询参数传递给 getJson 请求的文本框值

马特

我需要能够存储搜索框术语的文本值,它可以用作 getJson 请求中的查询参数。我将搜索词附加到用户在按 Enter 键后转到的 url 的末尾,但问题是在位置替换时,它显示为错误,因为页面的 url 是/faq/search-results/.

$(".faq-search").keyup(function(e){
   if(e.which == 13) {
        window.location.replace("/faq/search-results/" + $(".faq-search").text());
   }
});

一旦用户被发送到搜索结果页面,我有一个脚本,如果用户在那个 url 上,应该从 url 中的路径名中获取搜索词,并将其作为查询参数提交给 getJson要求:

    if(window.location.pathname == "/faq/search-results/"){
    $("document").ready(function(e) {
    var url = window.location.pathname;
    var exp = url.split(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/);
    var question = exp[5].split("/")[3];
    $.getJSON("//search.url-to-search.com?q=" + question + "&results_type=faq", {
    },
        //Get results and make 'em look good
        function(data) {
            console.log(data);
                $.each(data.data, function(i, data) {
                    if(data.type === "FAQ"){
                     $(".faq-results").append("<li class='result-item'><a href=\"" + data.permalink + "\"><h3>" + data.title + "</h3><p class=\"content\">" + data.text + "</p></a><p class=\"category\">" + data.type + "</p></li>");
                    }
            });
         });
});     
}

我相信问题在于它不会触发请求,因为它只寻找/faq/search-results/. 我想我需要一种方法将搜索词存储为变量并将其作为查询参数传递,但不确定如何实现这一点,因为我相信这会使变量超出范围。

马丁·韦伯

您的代码中有几件事是错误的:

首先收集输入值使用 .val() note text()。

其次,您没有将输入值作为查询字符串传递,而是将其添加到 url 路径 /helloWorld。我认为最好添加为查询字符串?q=helloworld。

因此,我调整了您的代码,删除了从路径中提取文本的代码,并实现了一个提取命名查询参数的函数,该函数称为 getParameterByName。

下面的代码应该是不言自明的。

$("document").ready(function(e) {
  // 
  // Collects the input param as passes it as a query string note
  // ?q= our string
  //
  $(".faq-search").keyup(function(e) {
    if (e.which == 13) {
      window.location.assign("file:///C:/Users/spydre/Desktop/text.html?q=" + $(".faq-search").val());
    }
  });

  // snippet gets a query param from url 
  function getParameterByName(name, url) {
    if (!url) {
      url = window.location.href;
    }
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
      results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
  }

  // collect any query string param whos name is q
  var question = getParameterByName("q");
  if (question) {

    // pass question to our getJson
    $.getJSON("//search.url-to-search.com?q=" + question + "&results_type=faq", {},
      //Get results and make 'em look good 
      function(data) {
        console.log(data);
        $.each(data.data, function(i, data) {
          if (data.type === "FAQ") {
            $(".faq-results").append("<li class='result-item'><a href=\"" + data.permalink + "\"><h3>" + data.title + "</h3><p class=\"content\">" + data.text + "</p></a><p class=\"category\">" + data.type + "</p></li>");
          }
        });
      });



  } //if question 

})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在文本框中输入值并将其作为参数传递给函数以给出返回结果

来自分类Dev

在getJSON jquery中传递输入值

来自分类Dev

使用文本框中的值作为Access中传递查询中的参数

来自分类Dev

PHP从生成的文本框传递值

来自分类Dev

如何等待$ .getJson的返回值

来自分类Dev

如何计算文本框中的值?

来自分类Dev

如何捕获文本框的变化值

来自分类Dev

如何在单击事件的jquery函数中将文本框值作为参数传递

来自分类Dev

从文本框中检索值并传递给js

来自分类Dev

将文本框值传递给字符串

来自分类Dev

将文本框值传递给 R 文件

来自分类Dev

如何处理通过getJSON传递给json文件的参数

来自分类Dev

如何使用其他文本框的值设置文本框的值

来自分类Dev

getJSON请求失败

来自分类Dev

停止当前的getJSON请求

来自分类Dev

停止当前的getJSON请求

来自分类Dev

如何解析弹出框到文本框的值?

来自分类Dev

如何获取下拉值作为文本框名称?

来自分类Dev

如何从Django以文本格式将在文本框中输入的值传递给Flask?

来自分类Dev

如何在显示功能中传递文本框值?

来自分类Dev

如何验证文本框以防止传递空值?

来自分类Dev

如何获取动态创建的文本框的文本值

来自分类Dev

如何获取动态创建的文本框的文本值

来自分类Dev

如何winform texboxt文本转移值网页文本框

来自分类Dev

使用存储过程将文本框值传递给数据库

来自分类Dev

如何在VBA中获得对文本框控件的引用而不是文本框的值

来自分类Dev

如何在文本框之前的选择值为 0 时禁用文本框

来自分类Dev

$ .getJSON使用data参数修改HTML元素上的文本

来自分类Dev

检索getJSON属性值

Related 相关文章

热门标签

归档