Y esa función de JavaScript cómo la llamas?... se supone que debas tener un botón que llame a la función valida("formulario") y si todo está Ok.. haga el submit... si no... te muestre el alert que faltan datos.
Pero eso lo resuelves en el foro de JavaScript (seguro encontrarás otros varios posts con la misma duda)...
Desde PHP puedes hacer otra validación en el servidor:
Código PHP:
<?php
// Si hay algún mensaje de error, se muestra
if(!empty($_GET['error'])){
echo "<script>alert('no se pudo enviar el mensaje. Datos incompletos')</script>";
}
function sendMail($from,$subject,$body){
$headers = "From: $from\n";
mail("[email protected]",$subject,$body,$headers);
}
// Si venimos de llenar el formulario
if (isset($_POST["btn_enviar"])){
//Si falta algún campo
if(empty($_POST['from']) || empty($_POST['nombre']) || empty($_POST('mensaje'))){
// Redireccionamos a la misma página, pero con un mensaje de error
header("Loaction : contactanos.php?error=0");
}else{
// Si no falta nada
$from=$_POST["from"];
$nombre=$_POST["nombre"];
$mensaje=$_POST["mensaje"];
$body = "Navn ...: ".$nombre." \n\n e-mail ..: ".$from."\n\n Sender besked..: ".$mensaje;
sendMail($from,$nombre,$body);
}
}else{}
?>
Ojalá entiendas la idea. Igual, lo mejor es que busques en el foro de JavaScript
Saludos