Te dejo un ejemplo usando un iframe oculoto:
Código PHP:
<?php
if(isset($_GET['guardar'])){
session_start();
$_SESSION['guardar']=$_GET['guardar'];
exit;
}
if(isset($_GET['mostrar'])){
session_start();
echo '<script>parent.document.getElementById("test").innerHTML="'.$_SESSION['guardar'].'"</script>';
exit;
}
session_start();
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>ejemplo</title>
<script>
var error=<?php if(isset($_SESSION['guardar']))echo $_SESSION['guardar'];else echo '0'; ?>;
function validar(form)
{
if(form.caja.value==""){
document.getElementById("test").innerHTML="";
error++;
document.getElementById("pp").src='<?php echo basename($_SERVER['PHP_SELF']) ?>?guardar='+error;
alert("Completi el nom i caja");
form.caja.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="<?php echo basename($_SERVER['PHP_SELF']) ?>?<?php if(isset($_SESSION['guardar']))echo $_SESSION['guardar'] ?>" onsubmit="return validar(this)">
<input name="caja" type="text" id="caja" />
<input type="submit" name="Submit" value="Enviar" />
<input type="button" name="Submit2" value="ver las veces que intentó mandar el form sin escribir nada" onclick="document.getElementById('pp').src='<?php echo basename($_SERVER['PHP_SELF']) ?>?mostrar'" />
</form>
<div id="test"></div>
<iframe id="pp" width="1" height="1" style="visibility:hidden"></iframe>
</body>
</html>