You are here: Re: Define new variables during runtime? « All PHP « IT news, forums, messages
Re: Define new variables during runtime?

Posted by Steve on 04/01/07 17:03

"Erik Kullberg" <erik.kullberg@telia.com> wrote in message
news:YdKPh.37639$E02.15231@newsb.telia.net...
| Thanks, Steve,
| You hae been most helpful!
| I can pass a one-dim array, but not a two-or-more-dim array - correct?
|
| It΄s about a linear aerodynamic 6 degrees of freedom model. The
coefficients
| (the table elements) are traditionally handled in named chunks of 3, 9 or
| the whole batch as one. But the elements also have their own individual
| names, which leads to my next question:
| Is it possible to superimpose variable names, so I can point at a certain
| value with the name that is appropriate according to the context?
| I cannot find anything about this in the PHP documentation ...

no...you can set the name to however many dimensions you want. here's a
quick example of superimpositon...you can tell the blank rows in this
example where the full number of errors in validation are present. it
doesn't quite work for the password matching but i'm not going to take any
more time to flesh it out. i think you'll get a good idea of how it works.
let me know where you have problems folling it (sorry for the text
wrapping...you have to fix that before running it)...

<?
$cells = isset($_REQUEST['cells']) ? $_REQUEST['cells'] : array();
$columns = array(
'NAME' ,
'LOGIN' ,
'PASSWORD' ,
'VERIFY' ,
'EMAIL'
);
$columnCount = count($columns);
if (!is_array($cells)){ $cells = array($cells); }

function isEmail($email)
{
if (!$email){ return false; }
$pattern =
"/^((\"[^\"]*?\")|([^\(\)\<\>\@\,\;\:\\\"\[\]\s\*\/]+))@(\[((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}|((([a-zA-Z0-9\-]+)\.)+))([a-zA-Z]{2,}|(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\])$/si";
return preg_match($pattern, $email);
}

function isValid($columns, $column, $value, &$error)
{
static $password = '';
$error = '';
switch ($column)
{
case 0:
case 1:
case 2: if (!empty($value)){ return true; }
$error = $columns[$column] . ' is required.';
$password = $value;
break;
case 3: if ($value == $password){ return true; }
$error = $columns[$column] . ' does not match the password
specified.';
break;
case 4: $password = '';
if (isEmail($value)){ return true; }
$error = $columns[$column] . ' is not a valid email address.';
break;
}
return false;
}

// tag errors for submitted data

$errors = array();
foreach ($cells as $index => $value)
{
$column = $index % $columnCount;
$row = floor($index / $columnCount);
isValid($columns, $column, $value, $error);
$errors[$row][$column] = $error;
}

?>
<style type="text/css">
table
{
border-collapse : collapse;
border-padding : 2px;
border-width : 0px;
border-spacing : 0px;
}
td
{
font-family : arial;
font-size : 7.25pt;
}
th
{
font-family : arial;
font-size : 7.25pt;
font-weight : 600;
}
</style>
<form method='get'>
<table>
<?
foreach ($columns as $column)
{
?>
<th><?= $column ?></th>
<?
}
for ($i = 0; $i < 5; $i++)
{
echo "<tr>\r\n";
foreach ($columns as $index => $column)
{
$index = ($i * $columnCount) + $index;
$type = $column == 'PASSWORD' || $column == 'VERIFY' ? 'password' :
'text';
echo ' <td><input name="cells[]" type="' . $type . '" value="' .
$cells[$index] . '" autocomplete="off"></td>';
}
echo "\r\n<tr>";
}
?>
</table>
<input type="submit" value="Validate ...">
</form>

 

Navigation:

[Reply to this message]


УдалСнная Ρ€Π°Π±ΠΎΡ‚Π° для программистов  •  Как Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Google AdSense  •  England, UK  •  ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Π‘Π°ΠΉΡ‚ ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π² Π‘Ρ‚ΡƒΠ΄ΠΈΠΈ Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½Π° ΠŸΠ΅Ρ‚Ρ€ΡƒΡ‡Π΅ΠΊΠ°
ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅Π±-сайтов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, поисковая оптимизация