2016-03-15 14 views
0

我有这样的形式:序列化的形式,但复选框数组转换为逗号分隔

<form id="filter_form"> 
    <select name="type"> 
     <option value="second">second</option> 
    </select> 
    <input type="checkbox" name="city[]" value="new_york" /> 
    <input type="checkbox" name="city[]" value="washington" /> 
</form> 

与此事件中的JS:

$('#filter_form').on('change', function() { 
     $.ajax({ 
      url: "properties", 
      method: 'GET', 
      data: $("#filter_form").serialize(), 
      success: function(result){ 
      } 
     }); 
    }); 

在这一刻网址是建立这样的:

properties?transaction_type=second&city%5B%5D=new_york&city%5B%5D=washington 

但我需要

properties?transaction_type=second&city=new_york,washington 

我该怎么做这个连接?

UPDATE编辑:

这种方法会帮助我,但我不能找到一种方法来实现:

array.map(function() { 
    return this.value; 
}).get().join(','); 
+0

这将有助于http://stackoverflow.com/a/9966097/5571157 –

+0

是不是我所需要的,请我的编辑的问题。 –

回答

0

你不需要[]因为他们没有在任何语义含义这个背景。它们也是重复的,最好的做法是拥有独特的变量。

的开始删除这些,代之以city1city2

这是一个_GET要求,你将能够从服务器中访问这些值作为city1city2

如果你想把它们组合成cities

您可以在JS客户端编写一个脚本,将它们组合成一个键/值对。

+0

城市来自数据库,最后我只需要city = value1,value2。输入或选择全部都是动态生成的。 –

+0

请检查我的编辑更新。 –

0

您可以将您的查询字符串URL中

properties?transaction_type=second&city=new_york,washington 

var data = 'transaction_type=' + <select_value> + '&city=' + <city_values>; 
$('#filter_form').on('change', function() { 
    $.ajax({ 
     url: "properties?" + data, 
     method: 'GET', 
     success: function(result){ 
     } 
    }); 
}); 
+0

我不知道输入的名称,因为它们是动态生成的,所以我不能构建数据。 –

相关问题