02-02-2014, 12:07 AM
(Modification du message : 02-02-2014, 12:08 AM par Sephi-Chan.)
Le panneau des flottes sélectionnées contient des informations supplémentaires ou reprend juste la même chose que dans la barre latérale ?
Moi je partirais sur un DOM assez simple et en tirant profit de checkboxes (pour ne pas avoir à s'occuper de l'accumulation des IDs et pour le feedback visuel de la sélection) :
Avec côté Javascript (et jQuery, sinon tu vas vraiment te faire chier sans aucun bénéfice) :
Moi je partirais sur un DOM assez simple et en tirant profit de checkboxes (pour ne pas avoir à s'occuper de l'accumulation des IDs et pour le feedback visuel de la sélection) :
<div id="sidebar">
<ul id="available-fleets">
<li>
<label>
<input type="checkbox" value="1" />
Fleet 1
</label>
</li>
<li>
<label>
<input type="checkbox" value="2" />
Fleet 2
</label>
</li>
</ul>
</div>
<div id="summary">
<ul id="selected-fleets"></ul>
<button>Send!</button>
</div>
Avec côté Javascript (et jQuery, sinon tu vas vraiment te faire chier sans aucun bénéfice) :
var getSelectedFleetIds = function() {
$.makeArray($('#available-fleets :checkbox:checked').map(function(){ return this.value }));
}
var injectHtmlForSelectedFleets = function(html) {
// Les <li> retournés par le serveurs.
$('#selected-fleets').html(html);
}
var refreshSummary = function(event) {
$.get('/dom_for_selected_fleets', { ids: getSelectedFleetIds() }, injectHtmlForSelectedFleets);
}
var sendFleets = function(event) {
$.post('/send_fleets', { ids: getSelectedFleetIds() }, displayMovementReport)
}
var displayMovementReport = function() { ... };
$(function(){
$('#available-fleets :checkbox').change(refreshSummary);
$('#summary button').click(sendFleets);
})