Cita: esto tampoco funciona muy bien, pq tengo que darle dos veces al botón para que las borre
PHP necesita que se procese el formulario para poder actualizar las variables, es decir, que debes enviarlo sí ó sí (se ejecuta en el servidor). Aunque es posible que modificando la ubicación del código (para que se evalúe antes de mostrar el formulario) no tengas que enviar dos veces.
Una alternativa para cambiar "al vuelo" podría ser que definas un evento onchange para el checkbutton y un script en javascript que se encargue de eso (ya que éste sí se evalúa en el cliente sin necesidad de enviar los datos), para cambiar o borrar el contenido de los elementos en el formulario.
Un saludo.