• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 270
  • Last Modified:

Form Field Check

I have a form written in PHP & one of the fields is the last name. I have some javascript that checks & throws a message that says "ATTENTION: Please enter a last name" if the user forgets to enter a last name/leave that field blank. I'm trying to alter the code with PHP to strip any trailing spaces or any - or ' in the last name but have had no luck. Is there a way I can use javascript to instead of stripping it from the field, to just throw a message that says you must remove the - or ' from this field before continuing sort of like this code does in case they forget to enter anythign in the field. This code will throw a message if the last name field is left blank:

if(document.forms[0].lname.value == "") {   
alert("ATTENTION: Please enter a last name.");   
document.forms[0].lname.focus();  
return(false)

Open in new window


Thanks for any help provides!
0
wantabe2
Asked:
wantabe2
  • 3
  • 3
1 Solution
 
Michel PlungjanIT ExpertCommented:
Add this to a script tag in the head. I assume 1 form on the page:
window.onload=function(){
  document.forms[0].onsubmit=function() {
    if (this.lname.value == "") {   
      alert("ATTENTION: Please enter a last name.");   
      this.lname.focus();  
      return false;
   }
}

Open in new window

0
 
wantabe2Author Commented:
Maybe this will help. Here all the code on the page. I just need to thorw some type of message if a user types in a ' or - in the lname field on line 139 & click submit...

<html
<head>
<title>New</title>
</head>
</html>

<p> <b><i>To go to the main page <a href="http://tp-o-flow/flow/index.html">click here</a>.</b></i></p>
<b> <i> This is the initial entry page. This information <u> will not </u> notify. </b> </i>

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);

if( isset($_POST) && !empty($_POST) )
{
     $host	= "localhost";
     $user	= "uname";
     $pw	= "password";
     $db	= "flow";
        
     $conn = mysql_connect( $host, $user, $pw )
     or die( "Error! Unable to connect to database server: <br/>" . mysql_error() );

     $rs = mysql_select_db( $db, $conn )
     or die( "Error! Unable to connect to database:  <br/>" . mysql_error() );
          
	foreach($_POST as $key=>$value)
	{
		${$key}=mysql_real_escape_string($value);
	}
	
     $strSQL = "INSERT INTO psrinfo
     	( fname, mname, lname, location, employee, status, oth_date, dock)
     	VALUES
     	( '" . $fname . "', '" . $mname . "', '" . $lname . "',  '" . $location . "', '" .$employee ."', '" .$status ."', '".$oth_date ."', '".$dock."')";
	 	 	 
     if (!mysql_query( $strSQL, $conn )){
     	echo( "Unable to save data to database: <br/>" . mysql_error() . "<br/>" . $strSQL . "</span><br/>" );
     }
     else{
     	header( "Location: index.html" );
		exit;
     }
}
?>
<html>

<head>
<title> Application </title>

<script type="text/javascript">
var valid;

function d2(v) { return (v<10)?("0"+v):v; }

function confirmation() {
		msg="You're about the enter the following information:";
		msg+="\n"; 
		msg+="\ndock: " + document.forms[0].dock.value;
        msg+="\nName: " + document.forms[0].fname.value + " " + document.forms[0].lname.value;
        msg+="\nStatus: " + document.forms[0].status.value;
		msg+="\nLocation: " + document.forms[0].location.value;
		msg+="\nEmployee: " + document.forms[0].employee.value;
		msg+="\nDate: " + document.forms[0].oth_date.value;
		msg+="\n\nIf this information is correct, click OK, if not click cancel to edit.";
		var answer = confirm(msg)
	if (answer){
		// send data to server
	}
	else{
		// don't send anything and return to your page
	}
	
	
	 if(document.forms[0].fname.value == "") {   
                alert("ATTENTION: Please enter a first name.");   
                document.forms[0].fname.focus();  
                return(false)
}

	 if(document.forms[0].mname.value == "") {   
                alert("ATTENTION: Please enter a middle name. If no middle name enter 'none'");   
                document.forms[0].mname.focus();  
                return(false)
}


	 if(document.forms[0].lname.value == "") {   
                alert("ATTENTION: Please enter a last name.");   
                document.forms[0].lname.focus();  
                return(false)

}


	 if(document.forms[0].location.value == "") {   
                alert("ATTENTION: Please choose a location.");   
                document.forms[0].fname.focus();  
                return(false)
}
	
	 if(document.forms[0].employee.value == "") {   
                alert("ATTENTION: Please choose PENDING or UNASSIGNED.");   
                document.forms[0].employee.focus();  
                return(false)
}	
	
	 if(document.forms[0].oth_date.value == "") {   
                alert("ATTENTION: Please enter data in the DATE field. If there is no date, enter 0000-00-00");   
                document.forms[0].oth_date.focus();  
                return(false)
}	
	 if(document.forms[0].dock.value == "") {   
                alert("ATTENTION: Please enter dock NO. If there is no dock NO, enter NO dock");   
                document.forms[0].dock.focus();  
                return(false)
}	



}

</script>

</head>
<body>
<body style="background-image:url(FadedBG.png); background-repeat:no-repeat; background-attachment:fixed; background-position:center;">
<form method="post" action="new.php">

<b>dock No: (Example 210)</b> <br />
<input type="text" name="dock" size="30" /><br />

<b>First Name:</b> <br />
<input type="text" name="fname" size="30" /><br />

<b>Middle Name:</b> <br />
<input type="text" name="mname" size="30" /><br />

<b>Last Name:</b> <br />
<input type="text" name="lname" size="30" /><br />

<b>Status:</b> <br />
<select name="status" /> <br />
<option value="Seal">Seal</option>
<option value="Try">Try</option>
<option value="Sent">Sent</option>
</select>
</br>

<b>Location: </b><br />
<select name="location" /> <br />
<option value="OfficeA">OfficeA</option>
<option value="OfficeB">OfficeB</option> 
<option value="OfficeC">OfficeC</option> 
</select>
</br>

<b>Unassigned or Pending:
<br> </b> 
<select name="employee" /><br />
<option value="Unassigned">Unassigned</option> 
<option value="Pending">Pending</option>
<option value="Unassigned">Unassigned</option>
</select> 
</br> 

<b>Original Date: (Example YYYY-MM-DD)</b> <br />
<input type="text" name="oth_date" size="30" /><br />

<br>

<input type="submit" value="Submit" onclick="return confirmation(this.form);"/>

</form>
</body>
</html>

Open in new window

0
 
Michel PlungjanIT ExpertCommented:
Here

I added value="" to all fields and fixed the focus of lastname when location was wrong and moved the onclick to the onsubmit and fixed the do nothing if answer was ok.
I added an IE compatiple trim

I would not personally insist that people typed something in for something they did not have - like no date and such.

Also it is not possible to NOT select a location. Perhaps you want
<option value="">Please select</option>
there too

<html
<head>
<title>New</title>
</head>
</html>

<p> <b><i>To go to the main page <a href="http://tp-o-flow/flow/index.html">click here</a>.</b></i></p>
<b> <i> This is the initial entry page. This information <u> will not </u> notify. </b> </i>

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);

if( isset($_POST) && !empty($_POST) )
{
     $host	= "localhost";
     $user	= "uname";
     $pw	= "password";
     $db	= "flow";
        
     $conn = mysql_connect( $host, $user, $pw )
     or die( "Error! Unable to connect to database server: <br/>" . mysql_error() );

     $rs = mysql_select_db( $db, $conn )
     or die( "Error! Unable to connect to database:  <br/>" . mysql_error() );
          
	foreach($_POST as $key=>$value)
	{
		${$key}=mysql_real_escape_string($value);
	}
	
     $strSQL = "INSERT INTO psrinfo
     	( fname, mname, lname, location, employee, status, oth_date, dock)
     	VALUES
     	( '" . $fname . "', '" . $mname . "', '" . $lname . "',  '" . $location . "', '" .$employee ."', '" .$status ."', '".$oth_date ."', '".$dock."')";
	 	 	 
     if (!mysql_query( $strSQL, $conn )){
     	echo( "Unable to save data to database: <br/>" . mysql_error() . "<br/>" . $strSQL . "</span><br/>" );
     }
     else{
     	header( "Location: index.html" );
		exit;
     }
}
?>
<html>

<head>
<title> Application </title>

<script type="text/javascript">
var valid;

function d2(v) { return (v<10)?("0"+v):v; }

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}

function isText(str) {
  str = str.trim();
  return str.length>0 && 
    str.indexOf("'")===-1 
    && str.indexOf("-")===-1;
}

function confirmation(theForm) {
		msg="You're about the enter the following information:";
		msg+="\n"; 
		msg+="\ndock: " + theForm.dock.value;
        msg+="\nName: " + theForm.fname.value + " " + theForm.lname.value;
        msg+="\nStatus: " + theForm.status.value;
		msg+="\nLocation: " + theForm.location.value;
		msg+="\nEmployee: " + theForm.employee.value;
		msg+="\nDate: " + theForm.oth_date.value;
		msg+="\n\nIf this information is correct, click OK, if not click cancel to edit.";
		var answer = confirm(msg)

	 if (!answer) return false;

	 if(!isText(theForm.fname.value)) {   
                alert("ATTENTION: Please enter a first name.");   
                theForm.fname.focus();  
                return false;
     }

     if(!isText(theForm.mname.value)) {   
                alert("ATTENTION: Please enter a middle name. If no middle name enter 'none'");   
                theForm.mname.focus();  
                return false;
     }


     if(!isText(theForm.lname.value)) {   
                alert("ATTENTION: Please enter a last name.");   
                theForm.lname.focus();  
                return false;
     }

	 if(!istext(theForm.location.value)) {   
                alert("ATTENTION: Please choose a location.");   
                theForm.location.focus();  
                return false;
     }
	
     if(!isText(theForm.employee.value)) {   
                alert("ATTENTION: Please choose PENDING or UNASSIGNED.");   
                theForm.employee.focus();  
                return false;
     }
	
     if(!isText(theForm.oth_date.value)) {   
                alert("ATTENTION: Please enter data in the DATE field. If there is no date, enter 0000-00-00");   
                theForm.oth_date.focus();  
                return false;
     }

     if(!isText(theForm.dock.value)) {   
                alert("ATTENTION: Please enter dock NO. If there is no dock NO, enter NO dock");   
                theForm.dock.focus();  
                return false;
     }
     return true; // submit
}

</script>

</head>
<body>
<body style="background-image:url(FadedBG.png); background-repeat:no-repeat; background-attachment:fixed; background-position:center;">
<form method="post" action="new.php" onsubmit="return confirmation(this)">

<b>dock No: (Example 210)</b> <br />
<input type="text" value="" name="dock" size="30" /><br />

<b>First Name:</b> <br />
<input type="text" value="" name="fname" size="30" /><br />

<b>Middle Name:</b> <br />
<input type="text" value="" name="mname" size="30" /><br />

<b>Last Name:</b> <br />
<input type="text" value="" name="lname" size="30" /><br />

<b>Status:</b> <br />
<select name="status" /> <br />
<option value="Seal">Seal</option>
<option value="Try">Try</option>
<option value="Sent">Sent</option>
</select>
</br>

<b>Location: </b><br />
<select name="location" /> <br />
<option value="OfficeA">OfficeA</option>
<option value="OfficeB">OfficeB</option> 
<option value="OfficeC">OfficeC</option> 
</select>
</br>

<b>Unassigned or Pending:
<br> </b> 
<select name="employee" /><br />
<option value="Unassigned">Unassigned</option> 
<option value="Pending">Pending</option>
<option value="Unassigned">Unassigned</option>
</select> 
</br> 

<b>Original Date: (Example YYYY-MM-DD)</b> <br />
<input type="text" value="" name="oth_date" size="30" /><br />

<br>

<input type="submit" value="Submit"/>

</form>
</body>
</html>

Open in new window

0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
wantabe2Author Commented:
If I wanted this code to check for commas would this section of code look like this?

function isText(str) {
  str = str.trim();
  return str.length>0 && 
    str.indexOf("'")===-1 
    && str.indexOf("-",",")===-1;

Open in new window

0
 
Michel PlungjanIT ExpertCommented:
no

function isText(str) {
  str = str.trim();
  return str.length>0 && 
    str.indexOf("'")===-1 &&
    str.indexOf(",'")===-1 &&
    str.indexOf("-")===-1;

Just continue - add a && and make sure only the last has an ending ;

If you have many more, we need to think about a regular expression like

[^'_-\/]
0
 
wantabe2Author Commented:
Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now