Проверка за празни полета

MontefuckeR

Registered
Искам да направя проверка за празни полета, обаче когато натиснеш бутона изпрати да излиза кои полета си забравил да попълниш, а тези които си попълнил да са си попълнени!
 
Можеш да го направиш с JavaScript и събитието onsubmit:
http://www.w3schools.com/jsref/jsref_onsubmit.asp?fname=
 
Ти за едно нещо по пет поста ли ще пускаш???
http://web-tourist.net/forum/viewtopic.php?t=50468&highlight=
Дал съм ти решение на въпроса:
Код:
<!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=windows-1251" />
<title>Untitled Document</title>
<script type="text/javascript">

function checkempty(theform){
var returnval=true //by default, allow form submission
for (i=0; i<theform.elements.length; i++){
if (theform.elements[i].type=="text" || theform.elements[i].type=="textarea"){
if (theform.elements[i].value==""){ //if empty field
alert("Полето "+theform.elements[i].name+" е непопълнено") //alert error message
returnval=false //disallow form submission
break //end loop. No need to continue.
}
}
}
return returnval
}

</script>
</head>
<body>
<form onSubmit="return checkempty(this)">
Name: <input type="text" name="yourname" /><br />
Email: <input type="text" name="email" /><br />
Comments: <textarea name="comments"></textarea><br />
<input type="submit" value="submit" />
</form>

</body>
</html>
Сега ще ти извежда последователно полетата,които НЕ си попълнил!Ако искаш да ги извежда навежъж,ако те са повече може да ползваш функцията:
, за да "натъпчеш" имената на празните полета в един масив, и после чрез цикъл да изведеш всичко заедно!
 
Код:
function checks()
{

var user = document.f1.user.value;
var pass = document.f1.pass.value;
var email = document.f1.email.value;


var err = '';


		
	if ( user<1 )
		err += '\nНе сте въвели !';
		
	if ( pass<1 )
		err += '\nНе сте въвели !';
		
	if ( store_email<1 )
		err += '\nНе сте въвели Администраторски E-mail за магазина !';
		
		
		
		
	if( !emailCheck( email ) )
		err += '\nE-mail адресът садържа невалидни знаци !';

	if( err == '' )
		return true;
	else
	{
		window.alert( 'Грешка(и) в попълнените данни във формата:\n' + err );
		return false;
	}
}



function emailCheck( emailStr )
{
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = '\\(\\)<>@,;:\\\\\\\\\.\\[\\]' + '"' + 'абв';
	var validChars = '\[^\\s' + specialChars + '\]';
	var quotedUser = '(\"[^\"]*\")'
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp( "^" + word + "(\\." + word + ")*$" );
	var domainPat = new RegExp( "^" + atom + "(\\." + atom +")*$" );
	var matchArray = emailStr.match( emailPat );
	if( matchArray == null )
		return false;
	var user = matchArray[1];
	var domain = matchArray[2];
	if( user.match( userPat ) == null )
	    return false;
	var IPArray = domain.match( ipDomainPat )
	if( IPArray != null )
	{
		for( var i = 1; i <= 4; i++ )
			if( IPArray[i] > 255 )
				return false;
		return true
	}
	var domainArray=domain.match(domainPat)
	if( domainArray == null )
		return false;
	var atomPat = new RegExp( atom, "g" );
	var domArr = domain.match( atomPat );
	var len=domArr.length;
	if( domArr[domArr.length - 1].length < 2 || domArr[domArr.length - 1].length > 3 )
		return false
	if ( len < 2 )
		return false;
	return true;
}



Код:
<form action="process.php" method="POST" name="f1"	 id="f1" onSubmit="return checks()">
      <table align="left" border="0" width="390" class="table" cellspacing="0" cellpadding="2">
	  <tr>
	    <td>* Име:</td> <td><input type="text" id="user"  name="user" maxlength="50"  ></td>
       </tr>	
       <tr>
	    <td>* Parola:</td> <td><input type="text" id="pass" name="pass" maxlength="50"  ></td>
	   </tr>	
</table>
</form>
 
Най-лесно проверката може да я направиш така
$user = $_POST[user];

if (empty($user)) { echo"Попълнете потребителско име"; }
 
Centrino каза:
Най-лесно проверката може да я направиш така
$user = $_POST[user];

if (empty($user)) { echo"Попълнете потребителско име"; }
имам 25 полета смятай дали ще го направя...
 
<?php
if (isset($_POST['submit'])) {
if ($_POST['pole1'] == NULL) { echo "Pole1 е празно"; }
if ($_POST['pole2'] == NULL) { echo "Pole2 е празно"; }
if ($_POST['pole3'] == NULL) { echo "Pole3 е празно"; }
if ($_POST['pole4'] == NULL) { echo "Pole4 е празно"; }
}
?>
<form action="" method="post">
<input type="text" name="pole1" value="<?php if ($_POST['pole1'] != NULL) { echo $_POST['pole1']; } ?>" />
<input type="text" name="pole2" value="<?php if ($_POST['pole2'] != NULL) { echo $_POST['pole2']; } ?>" />
<input type="text" name="pole3" value="<?php if ($_POST['pole3'] != NULL) { echo $_POST['pole3']; } ?>" />
<input type="text" name="pole4" value="<?php if ($_POST['pole4'] != NULL) { echo $_POST['pole4']; } ?>" />
<input type="submit" name="submit" value="OK">
</form>
 
Код:
$msg = array('artist' => 'prazno izpulnitel', 'song' => 'prazna pesen');
foreach($_POST AS $key => $post) {
 if($post == '') {
 echo $msg[$key];
 }
}
 
MontefuckeR, случайно не си ли чувал, че $_GET и $_POST са масиви??? Можеш да олекотиш обрабаботката на скрипта от страна на сървара, както и да си намалиш трансфера като прехвърлиш всички подобни проверки към клиента. Познай как се прави :)
 

Back
Горе