将输入字符串转换为GET变量

Convert a input string to GET variable

本文关键字:GET 变量 转换 输入 字符串      更新时间:2023-09-26

我正在尝试创建一个ajax搜索页面,它显示类似于谷歌的实时结果。

现在,我正在努力解决如何将搜索查询(如small dog)转换为GET参数的问题,在这种情况下,它将是"searchresults?search=small+dog"。我想要的是将单词之间的所有空白替换为+,并删除单词前后的空白。

我认为regex是可能的,或者有一些javascript或jquery函数来编码它吗?

我尝试使用escapeencodeURI,但它使空白CCD_ 7。PHP会理解它们是多个单词吗?

要手动转义Javascript中的查询组件,只需使用encodeURIComponent:

var url = '/searchresults?seach=' + encodeURIComponent(query);

要在之前修剪查询字符串,请对该字符串使用.trim()

可能也有用:每个web开发人员都必须了解的关于URL编码的信息

$.get("searchresults", {search : query}, function(data){
  // do something
});

它会自动添加"+",在php端,您可以简单地调用urldecode($str);

与其把它放在URL中,这会导致各种转义问题,不如像下面这样POST并将数据发送到搜索文件:

您的AJAX

$.ajax({
    url: 'search.php'
    ,async: true
    ,cache: false
    ,type: 'POST' // <-- method of sending to server
    ,data: {
               'search': ' small dog '; // notice white space before and after
           }
    ,dataType: 'json' // server returns info in this format
    ,success: function(data){
        // do something here with return data
        console.log(data);
    }
});

search.php

echo trim($_POST['search']); // gives you 'small dog'