Hola Pascal, estoy intentando usar el picklist de primeui para asignar varios usuarios a la vez:
Esta es la vista:
<script>
$('#basic').puipicklist();
</script>
<script>
$(document).ready(function () {
$('#zdk_user_asigna').zdkactionbar({
whenadd: function() {
/* Antes de visualizar el formulario "Nuevo jugador" */
$("#dlg_asigna .zdk-dropdown").zdkdropdown('refresh');
},
whenedit: function() {
/* Antes de visualizar el formulario "Modificar datos jugador" */
$("#dlg_asigna .zdk-listbox").zdklistbox('refresh');
}
});
});
</script>
<!-- Formulaire dans boîte de dialogueid="dlg_asigna" class="zdk-modal" -->
<div>
<form class="zdk-form" id="asigna_jug"
data-zdk-action="asigjugadoresctrl:RecJugEquipos"
data-zdk-datatable="table_jugadores">
<!-- <label>Número : </label>
<input name="id_equipo" disabled type="text">-->
<label>Equipo : </label>
<select class="zdk-dropdown" name="equipo"
data-zdk-action="equiposctrl:getEquipos"
data-zdk-noselection="Seleccionar un valor..."></select>
<label>Categoria: </label>
<select class="zdk-dropdown" name="categoria"
data-zdk-action="categoriasctrl:RecCategoria"
data-zdk-noselection="Seleccionar un valor..."></select>
<input class="zdk-row-id" type="hidden" name="id_equipo">
<label>Temporada: </label>
<select class="zdk-dropdown" name="temporada"
data-zdk-action="asigjugadoresctrl:Rectemporada"
data-zdk-noselection="Seleccionar un valor..."></select>
<input class="zdk-row-id" type="hidden" name="id_equipo">
<fieldset>
<legend>Elegir jugadores para el equipo</legend>
<div id="basic">
<select class="zdk-listbox" name="jugador[]" multiple="multiple"
data-zdk-action="asigjugadoresctrl:RecJugadores"></select>
<select class ="zdk-listbox" name="jugadores[]" multiple="multiple"></select>
</div>
</fieldset>
<button class="zdk-bt-save zdk-close-dialog" type="submit">Guardar</button>
<button class="zdk-bt-cancel zdk-close-dialog" type="button">Cancelar</button>
</form>
</div>
el controlador:
class asigjugadoresctrl extends \AppController {
static protected function action_RecJugadores() {
$jugadoresDAO = new \app\model\jugadasigDAO();
$jugadoresDAO->setSortCriteria('Use_nombre');
$jugador = array();
while ($row = $jugadoresDAO->getResult()) {
/* $categoria[] = $row; */
$jugador[] = array('label' => $row['Use_nombre'] . ' ' . $row['Use_apellidos'], 'value' => $row['id_usuario']);
}
/* Réponse retournée au contrôleur principal */
$response = new \Response();
$response->rows = $jugador;
$response->success = true;
return $response;
}
no introduce los datos en el primer select, y este es el controlador para una vez seleccionados los registre en la base de datos, pero sin duplicados en el id_usuario
static protected function action_RecJugEquipos() {
$request = new \Request();
$selectJugadores = $request->jugadores; // Array of the selected products in the listbox
$selectEquipo = $request->equipo; // Product category selected in the dropdown
$selectcategoria = $request->categoria;
$selecttemporada = $request->temporada;
$jugadoresDAO = new asigjugaDAO(); // The custom DAO used to store the product data
foreach ($selectJugadores as $value) {
$jugadoRow = array('id_usuario' => $value, 'id_equipo' => $selectEquipo, 'id_categoria' => $selectcategoria,'id_temporada' => $selecttemporada);
$jugadoresDAO->store($jugadoRow);
}
// JSON Response
$response = new \Response();
$response->setSuccessMessage("Asingación", "Asignacion correcta");
return $response;
}
Saludos
PD, también adjunto captura de pantalla para que veas que el picklist lo dibuja perfecamente