Yo lo que hago es algo parecido a esto...
Código html:
Ver original<?php
if(isset($_POST['enviar'])){
echo $_POST['nombre']." <- Nombre";
}
?>
<!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" xml:lang="en" lang="en">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <meta name="author" content="AnDrEi AJ" />
<script type="text/javascript"> function trim(str){
return(str.replace(/^(\s|\ )*|(\s|\ )*$/g,""));
}
function validar(){
var nombre = document.form_1.nombre.value;
var bool = true;
if(trim(nombre) == ""){
bool = false;
document.getElementById("nombre_r").innerHTML = "Nombre requerido."
}
return(bool);
}
<form name="form_1" action="" method="post" onsubmit="return(validar());"> <p>Nombre (requerido)
<input type="text" name="nombre" id="nombre" value="" /> <span id="nombre_r" style="color: red;"></span><p> <input type="submit" name="enviar" value="Enviar" />