ну если запрос не аяксовы й. то данные передать можно в DOM
//можешь сделать для errorBlock display:hidden если нехочешь чтобы он отображался
// так как $error это массив, то в него может засовывать множество ошибок а не только одну.
// возможно будет удобно иметь массив ошибок в суперглобальной области видимости, дабы собирать ошибки отовсюду
<?
$errors=Array();
$title = $_POST['title'];
if (empty($title)) {?>
$errors[]="Совсем нехорошо, пользователя забыла указать тайтл. Это ошибка однако";
<?}
?>
<!-- бла бла бла какойто html --!>
<!-- в этом блоке отрендерим все накопленные ошибки(блок надо расположить в конце сгенерированной страницы) -->
<div class="errorBloc">
<?
foreach ($errors as $item){
echo "<div class='error' >".$item."</div>" ;
}
?>
</div>
<script>
//ну и тут мона чонибудь с инфой об ошибке сделать однако
jQuery(function($){
$(".error").each(function(){
alert( $(this).html() ) ;
})
});
</script>