0

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

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

我认为使用正则表达式是可能的,或者是否有一些 javascript 或 jquery 函数对其进行编码?

我尝试使用escape, encodeURI, ... ,但它产生了空格%20。PHP 会理解它们是多个单词吗?

4

3 回答 3

1

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

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

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

可能也有用:每个 Web 开发人员必须了解的有关 URL 编码的知识

于 2013-08-15T13:13:36.647 回答
-1

而不是将它放在导致各种转义问题的 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);
    }
});

搜索.php

echo trim($_POST['search']); // gives you 'small dog'
于 2013-08-15T13:05:57.280 回答
-1
$.get("searchresults", {search : query}, function(data){
  // do something
});

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

于 2013-08-15T13:06:04.897 回答