2016-12-12 4 views
0

Здесь я хочу сделать, если пользователь выбрать Запущенный и готовы к заселению означает, что я хочу, чтобы принять это значение и отправить это значение в виде массива на следующую страницу с помощью AJAX URL, здесь я принять это значение, но не может создать формат массива,как создать массив в MULTISELECT значения флажка в JQuery

$("#fullSearch_btn").click(function(){ 
 
    var items = []; 
 
    $('#property_status:checked').each(function(){ items.push($(this).val()); }); 
 
    var property_status_result = items.join(', '); 
 
    alert(items); 
 
\t \t 
 
}); 
 

 
$.ajax({ 
 
    type:'GET', 
 
     url:"http://domain.com/api/get/areas/city?cityId="+city_id, 
 
     success: function(data) { 
 
      //console.log(data); 
 
     }, 
 
     error:function(exception){ 
 
     alert('Exeption:'+exception); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> \t 
 
<div class="button-group"> 
 
    <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" style="width:100%;text-align:left; border-radius: 0px;">Property Status <span class="caret" style="text-align:right;margin-left: 50px;"></span></button> 
 
    <ul class="dropdown-menu"> 
 
     <li><a href="#" class="small" data-value="option1" tabIndex="-1"><input type="checkbox" id="property_status" name="property_status[]" value="Launched" />&nbsp;Launched</a></li> 
 
     <li><a href="#" class="small" data-value="option1" tabIndex="-1"><input type="checkbox" id="property_status" name="property_status[]" value="Ready To move" />&nbsp;Ready To move</a></li> 
 
     <li><a href="#" class="small" data-value="option1" tabIndex="-1"><input type="checkbox" id="property_status" name="property_status[]" value="Under Construction" />&nbsp;Under Construction</a></li> 
 
     <input type="submit" name="submit" value="submit" id="fullSearch_btn"> 
 
</div> 

+3

Во-первых, идентификаторы должны быть уникальными в контексте документа –

+0

Используйте имя класса вместо идентификатора, и вы также должны использовать тег флажка вне тега привязки. –

ответ

0

Используйте сплит функции вместо() дизъюнктивно()

var property_status_result = items.split(','); 
+0

Мне это нужно [{«Запущен»: «Готов к переезду»}] –

+0

Если вы хотите, чтобы этот «[« Запущен »,« Готов к переезду »,« В стадии разработки »], вы можете использовать« var property_status_result = JSON.stringify (items.split ('')); ' – Abhay

0

Как и комментарии, измените свои идентификаторы. Что касается отправки массива, вы можете сделать это:

var items = []; 
$('.dropdown-menu input').each(function(){ 
    if($(this).is(':checked')) { 
    items.push($(this).val()); 
    } 
}); 
var property_status_result = items.join(', '); 
alert(items); 

Но это создает строку элементов массива. Это то, что вам нужно?

+0

Мне это нравится [{« Запущен »:« Готов к переезду »}] –

+0

Это объект внутри массива. Первый элемент должен быть ключевым, более вероятно, вам понадобится что-то вроде этого [[значение: «Запущено»}, {значение: «Готово к перемещению»}] '. Но это невозможно передать в параметре URL. Может быть, отправить его в атрибут 'data'? Кроме того, если вам нужна ваша форма, вы можете сделать это с помощью if, чтобы она выглядела так: [{Запущен: «Готово к перемещению»}] '. Можете ли вы привести мне пример того, какие данные может интерпретировать API? Возможно, я могу решить это так :) – yomisimie

+0

Я делаю поиск недвижимости, они возвращают значения, подобные этому [{ "createdBy": "agent", "createdDate": "2016-09-20T08: 13: 30.418Z" , «property_status»: [Запущен, «Готово к перемещению», } ] –

Смежные вопросы