La eliminación de uno o varios jugadores es mucho más sencilla que la inserción pues no necesita modificar ninguna vista. Solo trabajaremos con la vista principal, el controlador y el modelo. La vista por defecto no sufrirá modificaciones (default.php), pero es importante notar que se puede utilizar el check all que incluimos en su momento, cuya función es marcar o desmarcar todos los elementos simultáneamente. Nos referimos al checkbox que aparece al principio, en la cabecera, que al pulsar sobre ella marcará o desmarcará todos los elementos que aparecen en la vista.
En la vista principal simplemente añadiremos el icono de la papelera.
En view.html.php añadimos la línea
JToolBarHelper::deleteList('estas seguro?','BorraJugadores',’Eliminar’);
El primer parámetro es el mensaje que saldrá (como si se tratara de javascript) pidiendo confirmación; el segundo es la función del controlador que realiza la eliminación y el tercero es el pie de icono.
En el controlador (controller.php) tenemos que crear la función BorraJugadores. La función sería más o menos así:
function BorraJugadores(){
Lo primero, como siempre, obtener el modelo
$modelo = $this->getModel('jugadores','gessegModel');
Lo siguiente será obtener todos los id’s que estén marcados, es decir, todos los checkbox que se hayan seleccionado. Esta información se guarda en ‘cid’
$id = JRequest::getVar('cid', 0, '', 'array');
Necesitamos controlar que se haga la eliminación, por lo que creamos la variable $correcto y la inicializamos a true
$correcto = true;
Como en $id tenemos todos los id’s que queremos eliminar, para cada uno llamamos a la función del modelo. Si se eliminan todos $correcto saldrá como verdadero. Si hubiera alguno que no pudiese eliminarse, saldrá como falso.
foreach($id as $i){
$resultado = $modelo->eliminarJugadores($i);
if(!$resultado) $correcto = false;
}
Finalmente controlamos la salida de $correcto si no se ha hecho alguna eliminación se muestra un mensaje de error.
if($correcto)$this->setRedirect('index.php?option=com_gesseg&view=tiposSeguros', 'Tipo(s) de Seguro(s) eliminado(s) correctamente');
else$this->setRedirect('index.php?option=com_gesseg&view=sucursales', 'Ocurrió un error al eliminar los datos','error');
}
Solo nos queda ver la función eliminarJugadores en el modelo (models/jugadores.php)
function eliminarJugadores($id){
Conectamos con la base de datos
$db =& $this->_db;
Creamos la sentencia mysql.
$query = "DELETE FROM #__gesseg_jugadores WHERE ID = $id";
La asignamos a la base de datos para ejecutarla.
$db->setQuery($query);
La ejecutamos.
$db->query();
Si hubo algún error devuelve falso y si no devuelve verdadero.
if($db->getErrorNum()) return false;
return true;
}
Actualizado (Lunes, 21 de Diciembre de 2015 21:27)