I'm trying to detect the Enter key in a text field so I can type in a name and then press the enter key to submit. Submit calls index_dispatcher.php which sets some session variables for the user name typed in and then calls index.php. Index.php then uses these $_SESSION[] vars to display some data about the user. I actually am detecting the Enter key OK - but - using Firefox and Safari I have to type in the user name (bill in this case) and press Enter - then index.php refreshes and I have enter in the name bill again and press Enter again then it finally works!

So, this works fine on IE 6.0 but takes two trys to get it to work in Firefox and Safari. I'm using windows Vista.

My index.php JS code (seems to be working fine):

PHP Code:
function DetectNEnter(e)
{
var 
characterCode;
if(
&& e.which// NN4 specific code
{
    
e;
    
characterCode e.which;
}else
{
    
event
    characterCode 
e.keyCode// IE specific code
}if (characterCode == 13//// Enter key is 13
{
      
document.index_form.submit();
}     else return 
false;} 
My index.php <Form> line:
PHP Code:
<FORM NAME="index_form.php" ACTION="index_dispatcher.php" METHOD="post"
My index.php text box code:
PHP Code:
Name <INPUT TYPE="text" NAME="frm_name" onKeyDown="DetectNEnter(event);"> <INPUT TYPE="submit" NAME="frm_button_login" VALUE="Login"
Here's my index_dispatcher.php code and this is working ok as my debug line shows 'OK' *every* time but on the first pass in FF/Safari the session vars do not display when the index.php script is called.

PHP Code:
$php_string strtolower($_POST["frm_sc_login_name"]);

// open mysql database connection --------------------------------
//                           server      username       password
$php_linkID mysql_connect("localhost","db16_ralph","atg568h93hf65jn8");
if (
$php_linkID != TRUE)
   {
     print 
'<br>database connection failed.<br>';
     exit;
   }

// select the main database --------------------------------------
$php_resultID mysql_select_db("db_db",$php_linkID);
if (
$php_resultID != TRUE)
   {
     print 
"database selection failed.<br>";
     exit;
   }

$php_SQL "SELECT * FROM Salesmen WHERE login_name = '".$php_string."'";
$php_resultID mysql_query($php_SQL$php_linkID);
$php_row mysql_fetch_object($php_resultID);
$php_row_count mysql_num_rows($php_resultID);
if (
$php_row_count 0)
   {
     print 
'OK<br>';

     
$_SESSION['php_g_sc_login_name'] = $php_row->login_name;
     
$_SESSION['php_g_sc_first_name'] = $php_row->first_name;
      
$_SESSION['php_g_sc_last_name'] = $php_row->last_name;

// works ok every time
print $_SESSION['php_g_sc_first_name'].'<br>';
print 
$_SESSION['php_g_sc_last_name'].'<br>';

   } 
Can anyone see why it takes two text box tries before the index.php script 'sees' the php variables back in the index.php script?