Javascript 如何使用jquery删除此代码的空格和加号
我想删除空格和加号,现在我正在获取“个人住宅”,我想通过AJAX将此值传递到下一页,还有一些额外的内容:Javascript 如何使用jquery删除此代码的空格和加号,javascript,jquery,Javascript,Jquery,我想删除空格和加号,现在我正在获取“个人住宅”,我想通过AJAX将此值传递到下一页,还有一些额外的内容: searchProperties?propertyType=%5B%22+/code>
searchProperties?propertyType=%5B%22
+/code>
%22%2C%22
行
行
行
<22%5D
我想像这样传递AJAX数据URL:
searchProperties?propertyType=“[“个人住宅”、“行住宅”]”
函数createJSON(){
属性类型=[];
$('#属性类型:选中')。每个(函数(){
//属性_type.push($(this.val());
属性_type.push(jQuery.trim($(this.val().replace(/\s+/g,,));//[“个人+房屋”,“行+房屋”]
});
var property_typejson=JSON.stringify(property_type),
数据={};
如果(属性类型!='')
数据['propertyType']=属性类型JSON;
控制台日志(数据);
$.ajax({
键入:“GET”,
url:“map.php”,
数据:数据,
成功:功能(数据){
控制台日志(数据);
},
错误:函数(errMsg){
console.log(errMsg);
}
});
}
个人住宅
排房
别墅
更新搜索
我对这一点做了很大的改变:
向按钮添加一个ID,在其上设置一个单击侦听器,将GET更改为POST请求,将数据更改为合法的JSON,并编写一些PHP来读取另一端的JSON
另外,我已经将您的函数重命名为submitAjax()
,因为这对我来说更符合逻辑
$(文档).ready(函数(){
$(文档)。在(“单击”上,“#btnSubmitJson”,函数(e){
e、 preventDefault();//不要正常提交表单,我们将使用jQuery处理
submitAjax();
});
});
函数submitAjax(){
var属性_type=[];
$(“.property\u type:checked”)。每个(函数(){
属性_type.push($(this.val());//您不需要修剪,您的值不以空格开头或结尾,用“”替换\s实际上对给定的值没有任何作用
});
var jsonData={
属性类型:属性类型
};
jsonData.other_var=“something other”//向对象添加更多内容
console.log(“jsonData:,jsonData);//您可以console.log退出多个项目,我喜欢包含一个标签,这样我就知道我在看什么了
$.ajax({
类型:“POST”,
url:“map.php”,
资料来源:jsonData,
成功:功能(数据){
console.log(“成功:”,数据);
},
错误:函数(errMsg){
log(“错误:”,errMsg);
}
});
}
个人住宅
排房
别墅
更新搜索
HTML:HTML对象中的ID必须是唯一的,因此我更新了您的HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<!-- your ids should be -->
<input type="checkbox" id="IndividualHouse" name="property_type[]"
value="Individual House" /> Individual House
<input type="checkbox" id="RowHouse" name="property_type[]"
value="Row House" /> Row House
<input type="checkbox" id="Villa" name="property_type[]"
value="Villa" /> Villa
<br></br>
<button type="button" id="btnUpdateSearch">
<i class="fa fa-search"></i>Update search
</button>
个人住宅
排房
别墅
更新搜索
然后简化JavaScript以利用ID
$(function ($) {
$("#btnUpdateSearch").click(function () {
$chk = $("input:checked");
var arr = [];
$chk.each(function () { arr.push(this.id); })
var data = { 'propertyType': JSON.stringify(arr) };
$.ajax({
type: 'GET',
url: "map.php",
data: data,
success: function (data) {
console.log(data);
},
error: function (errMsg) {
console.log(errMsg);
}
});
});
});
</script>
$(函数($){
$(“#btnUpdateSearch”)。单击(函数(){
$chk=$(“输入:选中”);
var-arr=[];
$chk.each(函数(){arr.push(this.id);})
var data={'propertyType':JSON.stringify(arr)};
$.ajax({
键入:“GET”,
url:“map.php”,
数据:数据,
成功:功能(数据){
控制台日志(数据);
},
错误:函数(errMsg){
console.log(errMsg);
}
});
});
});
你的问题是什么?您想要传递的不是JSON,因为字符串没有被引用。我的问题是,在传递(下一页)值时,我想删除空格和%和+我想您不会这样做<代码>%5B
=[
必须进行编码,因为它是URL中的一个特殊字符。请更新您的答案+
表示URL中的空格。为什么不改为使用POST请求将数据作为JSON发送?此外,您不应该有多个ID相同的元素。请将ID=“property\u type”
更改为类=“property_type”
。我在检查完值后的问题,我想在另一个页面中传递,而传递给我时,它将使用空格和%like传递map.php?propertyType=%5B%22IndividualHouse%22%2C%22RowHouse%22%5d但我的案例不希望这样,map.php?propertyType=[“individualhouse.”RowHouse“]“但我的案例不希望这样,map.php?propertyType=“[”个人住宅,“RowHouse”]”map.php?propertyType=“[”个人住宅。“RowHouse”]“无效。如果您希望这样做,则需要先进行字符串化,然后在另一端进行url编码和反转。我想我仍然不完全理解您试图执行的操作。我尝试将您的代码作为GET方法,但也没有得到map.php?另一个_var=something%20else为什么要使用GET?”?