Te hago un par de sugerencias, algunas pueden sonar triviales, vos ves que te sirve y que no.
Primero que nada tengo por norma nunca realizar peticiones que efectuen cambios en servidor vía GET, o sea efectuar altas, bajas y modificaciones siempre vía POST (y si es posible y según el caso también PUT). Si se trata de un resultado de búsqueda uso GET, ya que su finalidad es entregar datos al cliente e incluso lo puede guardar en un bookmark.
Yo fusionaría los 2 archivos php (eliminar.php y cambio.php) y mandaría todas las acciones al mismo y dentro del php discriminar de que acción se trata.
De esta manera tenés la funcionalidad sin javaScript (tiene dos submit):
Origen
Código HTML:
<form name="frm" action="php/cambio.php" method="post">
<ul>
<li>
<label>Nueva Parcela:</label>
<input type="text" size="3" maxlength="3"name="id" id="id" />
</li>
<li>
<label>Nuevos m2:</label>
<select size="1" name="m2">
<option selected="selected" value="40">40</option>
<option value="50">50</option>
<option value="65">65</option>
<option value="75">75</option>
</select>
</li>
<li>
<input name="modificar" type="submit" class="btn" value="Modificar" />
<input name="eliminar" type="submit" class="btn" value="Eliminar" />
</li>
</ul>
</form>
Destino
Código PHP:
<?php
if(isset($_POST['eliminar']))
{
// uso el valor de $_POST['id'] para eliminar e ignoro todos los demás
}
elseif(isset($_POST['modificar']))
{
// acá va el código para la modificación
}
?>
Hasta acá la parte funcional
------------------------------------------------------------------------------------------------------------------
Ahora entra javaScript.
Código HTML:
<form name="frm" action="php/cambio.php" method="post" onsubmit="return confirmacion(this)">
De esta manera podés usar la confirmación para ambas acciones
Código:
<script type="text/javascript">
/* <![CDATA[ */
function confirmacion(formulario) {
// si acción es modificar pregunto si quiere modificar, de lo contrario pregunto si quiere borrar
var textoConfirmacion = (accion == 'modificar') ? '¿Desea modificar...?' : '¿Desea eliminar...?';
var confirmado = confirm(textoConfirmacion);
if(confirmado) {
// si el usuario confirma: le concateno a la ruta del action del formulario el parametro GET 'confirmado'
formulario.action += '?confirmado=1';
}
return confirmado;
}
/* ]]> */
</script>
Creo la variable global 'accion' y le asigno el valor de name del botón seleccionado.
Código HTML:
<input name="modificar" type="submit" class="btn" onclick="cambiarAccion(this)" value="Modificar" />
<input name="eliminar" type="submit" class="btn" onclick="cambiarAccion(this)" value="Eliminar" />
Código:
<script type="text/javascript">
/* <![CDATA[ */
var accion;
function cambiarAccion(boton) {
accion = boton.name;
}
/* ]]> */
</script>
Volviendo al PHP, si no se recibe el parámetro 'confirmado' es porque seguramente se hizo el submit sin javaScript y el usuario no vió la pregunta de confirmación.
(Ya se que es duplicar código)
Código PHP:
<?php
if(!isset($_GET['confirmado']))
{
// muestro al usuario la confirmación, esta vez en HTML
}
?>
Como te decía: son sólo un par de sugerencias no muy desarrolladas.