通过ajax将查询字符串作为字符串传递

时间:2019-12-16 01:21:49

标签: php jquery json ajax string

我正在尝试通过ajax传递字符串,但是该字符串是从搜索中获取的查询字符串,看起来像这样:

search=&site=0&salesperson=0&referral=0&product=0&estimate=0&sort=date&open=on&filter_sbmt=Filter+Prospect&limit=30

因此,当我通过ajax将其作为变量url=search=&site=0...传递时,它将设置$_POST['url']="search=",,然后将&site分隔为新的帖子,而不是将整个字符串都保留在一个字符串中。

$.ajax({
    type    : 'POST',
    url     : '//'+base_url+'/ajax2/customer-search.php',
    data    : 'url='+url,
    success : function(data) {
        $('#customers_table').html(data);
    }
});

我曾尝试在php和javascript端使用json对其进行解码。这也没有帮助。我没主意。

如何将字符串"search=&site=0&salesperson=0&referral=0&product=0&estimate=0&sort=date&open=on&filter_sbmt=Filter+Prospect&limit=30"转到ajax / customer-search.php

2 个答案:

答案 0 :(得分:1)

如果您传递对象而不是字符串,jQuery将为您编码数据。

data    : { url }

或者,现代浏览器有一个URLSearchParams对象,它将为您编码数据:

var searchParams = new URLSearchParams();
searchParams.append("url", url);
var data = searchParams.toString(); 

答案 1 :(得分:-1)

您可以使用parse_str()

$params = array();
parse_str($_POST['url'], $params);

print $params["salesperson"];