@rbczgz
Creo que estás complicándote un poco
El form está un poco imperfecto, pero creo que la idea a aplicar es esta
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script languaje="javascript">
function verificar_uno(param){
var cuales = param;
var suma = 0;
var marcando;
var checks = document.getElementsByName('ids[]');
for (var i = 0, j = checks.length; i < j; i++) {
// sumar los marcados
if(checks[i].checked == true){
suma++;
}
// marcar desmarcar todos (la función recibe un parámetro
if(cuales == 'todos'){
checks[i].checked = true;
marcando = 1; // ponemos marcando en 1 para saber que no nos interesa procesar el form por ahora
}
if(cuales == 'nada'){
checks[i].checked = false;
marcando = 1;
}
}
if(marcando != 1){
// si no sumo suma = 0, entonces
if(suma == 0){
alert('Debes seleccionar un registro');
return false;
}else{
//Confirmación para uno o varios
if(suma == 1){
var texto = 'el usuario seleccionado';
}else{
var texto = 'los usuarios seleccionados';
}
var pregunta = confirm("¿Realmente deseas eliminar " + texto +"?")
if(pregunta){
// no haces nada y el form se procesa
}else{
alert('Operación cancelada');
// cancelas el envío
return false;
}
}
}
}
<form name="form" id="form" action="proceso.php" method="POST" onsubmit="return verificar_uno()">
<td>marcar todos
<input type="radio" name="marcar" id="todos" onclick="verificar_uno(this.id)">desmarcar todos
<input type="radio" name="marcar" id="nada" onclick="verificar_uno(this.id)"> </td>
<?php
//Aquí hago las consultas para generar la parte dinámica de la tabla
?>
<td><input type="checkbox" id="ids" name="ids[]" value="<?php echo $row[0] ?>">
</td> <td><input type="checkbox" id="ids2" name="ids[]" value="<?php echo $row[0] ?>">
</td>
<center>
<input type="submit" name="submit" value="Eliminar seleccionados"> <input type="submit" name="submit" value="Añadir Usuario">
Como se supone que cada fila de usuario tiene su propio checkbox para habilitarlo, manejás todo con un solo botón sumbit, y el evento se define en el form, la función marcar /desmarcar, está integrada en verificar_uno(), salvo que en ese caso se le pasa un parámetro desde el click de los radiobuttons, en ese caso el submit no se hace. faltaría definir para que sirve "añadir usuario"
Saludos