Добавяне в див от еcho

dakata__92

Super Moderator
Зациклих напълно и започнах да мисля много сложни идеи, а съм сигорен, че има и по-лесен и лек начин. Та имам една форма в която си въвеждам информация и проверки, но искам примерно проверките от echo "Непопълнено поле 1",echo "Непопълнено поле 2" и т.н. да ги записвам в див за да се запазят данните въведени от потребителя във формата, като в дива си излизат грешките една под друга. Мислех нещо от сорта на JS document.getElementById('box').innerHTML='тук ще пише грешката от echo' или document.write('текст'), но немога да измисля как по оптимален начин, да го направя защото проверките са много, а не ми се пише по 1 функция за сяка :)
PHP:
<?php
if(isSet($_POST['submit']))
{

if(empty($_POST["user"]))
{
echo"Molq popalnete pole user<br />";
}
else
if(empty($_POST["pass"]))
{
echo"Molq popalnete pole pass<br />";
}
else
{
kod...
$user = addslashes(htmlspecialchars($_POST["user"]));
$pass = addslashes(htmlspecialchars($_POST["pass"]));
}

}
?>

<div id='box'></div>

<form action=' ' method='POST'>
<input type='text' name='user' />
<input type='text' name='pass'>
<input type='submit' name='submit' value='Регистрация' />
</form>
 
Всичко става само с JS .. при тва доста лесно .. като цяло логиката е следната ..

1. ти трябва 1 функция , която да сеизпълнява при изпращане на формата
2.всяко поле от формата трябва да има уникално ИД ..
3. и тва е :D

ся щи дам пример но с моя форма ,че ме марзи ся да го прая за твоята ...

HTML:
<form method=\'post\' name=\'loginform\' action=\'\' onsubmit=\'validateForm()\'>

   <input id=\'username\' name=\'username\'  value=\"Потребител\"/>
<br/><br/>
  <input id=\'pass\' name=\'pass\'  value=\"Парола\"/>
<br/>
<input type=\'submit\' onclick=\"validateForm()\" value=\"давай !\"/>
<div id=\'error\' style=\'display:none;padding:10px;border:1px solid darkred;background:#fff;\'></div>
</form>

[js]
function validateForm(){

var user = $(\"#username\").val(); // wzemam username valutata
var pass = $(\"#pass\").val(); // wzemam pasa valutata


if(!user)
{
$(\"#error\").fadeIn(500).html(\"Попълни си името ! \");
}
if(!pass)
{
$(\"#error\").fadeIn(500).html(\"Попълни си паролата ! \");
}else{
document.loginform.submit(); // izprashame formata
}

}
[/js]

и тва е .. само че при тебе се искат бая проверки .. но това е общо взето .. :p
 
С jQuery можеш да направиш следното:

[js]<script>
$("#box").append("Imeto na greshkata");
</script>[/js]

Това ми хрумна като идея иначе можеш да си го направиш според твоите нужди
 
Не си ме разбрал ! Проверките си ги имам, а тази форма я писах на място като пример. Идеята ми, е че си валидирам формата с PHP и си извеждам при наличието на грешка еcho " Грешка празно поле"; примерно . Та тази грешка искам да се записва в див, а не да валидирам формата с JS .
Код:
<?php
if(empty(pole))
{
еcho " <script>fumction add(){

document.getelementbyid('box').innerHTML='Грешка празно поле';
}</script>"; 
}
else
{
kod
}
?>

<div id='box'></div>
Нещо такова.
 
M1tq96 каза:
еми то е същото ... :D
Не е същото, по простата причина, че ти валидираш формата чрез onclick="validateForm()" подаден на инпута, а на мен ми е нужен начин който от еcho да ги извежда, защо да пиша и нови проверки с JS :)
 
PHP:
<?php
if(isSet($_POST['submit']))
{

$errors=array();

if(empty($_POST["user"]))
{$errors[1]=true;}

if(empty($_POST["pass"]))
{$errors[2]=true;}

if(count($errors)<1){
$user = addslashes(htmlspecialchars($_POST["user"]));
$pass = addslashes(htmlspecialchars($_POST["pass"]));
}

}
?>

<div id='box'>

<?php
if(isset($errors[1])){echo"Molq popalnete pole user<br />";}
if(isset($errors[2])){echo"Molq popalnete pole pass<br />";}
?>

</div>

<form action=' ' method='POST'>
<input type='text' name='user' />
<input type='text' name='pass'>
<input type='submit' name='submit' value='Регистрация' />
</form>
 
@eddy само правиш нещата с повече писане... аз предлагам това
PHP:
<?php
if(isset($_POST['submit']))
{

$errors=array();
$i = 0;
if(empty($_POST["user"])) $errors[]="Molq popalnete pole user";

elseif(empty($_POST["pass"])) $errors[]="Molq popalnete pole pass";

else{
kod...
$user = addslashes(htmlspecialchars($_POST["user"]));
$pass = addslashes(htmlspecialchars($_POST["pass"]));
}

}
?>

<div id='box'>

<?php
if(!empty($errors)) echo implode('<br />',$errors);
?>

</div>

<form action=' ' method='POST'>
<input type='text' name='user' />
<input type='text' name='pass'>
<input type='submit' name='submit' value='Регистрация' />
</form>
 
Благодаря и на двамата ! Въпреки, че ми предложи начин по който да пиша по-малко код ще избера начина на Еди понеже мога да оперирам с данните и след приключване на проверката +1
 
въпреки, че си дал точката мога да ти предложа още 1 начин
Когато извеждаш echo-то просто текста го слагаш в 1 див
echo "<div='classa'>texta</div>";
 

Горе