Hola,
no me atrevería a decirte el por qué no te funciona pero si te cuento lo que yo haría.
1. utilizaría escape para codificar los valores que vas a pasar por la URL
Código HTML:
function Cambiar(){
var gal = document.getElementById('edit').value;
var sta = document.getElementById('stat').value;
if(confirm("Deseas cambiar el estado de la galeria?:"))
{
location.href = 'foto.php?editar='+escape(gal)+'&status='+escape(sta);
}
}
En cuanto al PHP que recoge los datos:
1. crearía una función para controlar los valores que llegan por la URL (algo con addslashes(), htmlspecialchars() o funciones de algún tipo)
2. cambiaría el valor de $_GET['status'] de una cadena a un entero (1/0)
Código PHP:
if(isset($_GET['status']))
{
$aCambio = (int) funcion_que_controle_los_valores($_GET['status']);
$xSQL = "UPDATE galeria SET gal_vigencia = " . $aCambio; // puedes controlar más los valores a almacenar, solo 1/0 o cualquier entero.
if($xrst=mysql_query($xSQL)) header("location: foto.php?editar=$gal_id");
else die('error en la actualización'); // opcional el detener el proceso
}
Sobre lo que dices de que no te envía la información con JS, ¿con qué navegador has probado? Me quiere sonar que alguno de ellos no envia un campo de formulario si esta está deshabilitado (no pondría la mano en el fuego pero no pierdes nada en probar sin deshabilitarlo). Cuéntanos