2013-10-18 19 views
18

Dưới đây là một đoạn mã của tôi: http://jsfiddle.net/natatkinson/xbWEb/Select2 đa giá trị chỉ gửi một giá trị trong POST

Javascript:

$(document).ready(function() { 
    $("#tags").select2({ 
     maximumSelectionSize: 3 
    }); 

}); 

HTML:

<form name="form1" id="form1" action="" method="GET"> 
<fieldset> 
    <legend>Shoe Info</legend> 
    <dl> <dt>Name:</dt> 

     <dd> 
      <input type="text" name="name" id="name" size="40" placeholder="Shoe name" required autofocus> 
     </dd> 
    </dl> <dt>Tags:</dt> 

    <dd> 
     <select multiple="" name="tags" id="tags" style="width:100%;"> 
      <option value="0">Select Tags</option> 
      <option value="2">racing flat</option> 
      <option value="3">track spikes</option> 
      <option value="1">trainer</option> 
     </select> 
    </dd> 
    </dl> 
</fieldset> 
<p class="submit-buttons"> 
    <input type="submit" class="button1" name="submit" id="submit" value="Add Shoes" /> 
</p> 

Tất cả các lần gửi đó là 1 giá trị, không phải danh sách được phân cách bằng dấu phẩy như tài liệu nói.

+5

bạn đã thử sử dụng "thẻ []" làm tên chưa? – Tschitsch

+0

Nếu tôi thực hiện yêu cầu với 3 thẻ được liệt kê, tôi thấy các URL sau đây là URL yêu cầu: '/? Name = abc & tags = 0 & tags = 2 & tags = 3 & submit = Thêm + Giày dép ' – Nightfirecat

+0

@Tschitsch Đúng vậy! Tôi sẽ thông báo cho tác giả để cập nhật tài liệu của họ. Không thể tin rằng tôi đã không thử điều đó sớm hơn. Cảm ơn –

Trả lời

59

Bạn phải sử dụng [] cho nhiều giá trị chứa tên của kiểm soát biểu mẫu. Đúng sử dụng ở phía dưới:

<select multiple="" name="tags[]" id="tags" style="width:100%;"> 
+0

Cảm ơn bạn. Điều gì sẽ xảy ra nếu tôi muốn chuỗi được tách biệt bằng dấu phẩy của tùy chọn đã chọn? –

+0

@ankitsuthar Xem câu trả lời mới, hy vọng điều này có thể giúp bạn. – Frank

1

Tôi nghĩ rằng bạn không thể nhận được dữ liệu từ chuỗi Select2 trực tiếp, bạn nên thêm một đầu vào ẩn, và nộp giá trị đầu vào ẩn như param.

<input type="hidden" name="tags" id="tags"></input> 
<select multiple="" style="width:100%;" onchange="changeSelect(event)"> 
    <option value="0">Select Tags</option> 
    <option value="1">trainer</option> 
</select> 
function changeSelect(event){ 
    var select2Value = $(event.target).val(); 
    $("tags").val(select2Value); 
} 
Các vấn đề liên quan