我正在尝试通过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
答案 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"];