Has anyone here ever done a case where you have a select multiple form
element and you have to do both server-side and client-side validation?
I am honestly not sure how to do it in Javascript (I keep getting errors
thrown that I can't verify because the form processes onto itself too
quickly for me to check the Javascript errors) because the select multiple
form element name has to be in the form of "var[]" because PHP will then
recognize $var as an array and not as a scalar (if it sees "$var" it will
only capture the LAST element you entered in the select multiple, if it sees
"$var[]" it gets them all).
However, "var[]" is not friendly to Javascript either, at least as far as I
can tell. So, what I need to find out is how anyone out there has ever
dealt with select-multiple form elements for BOTH Javascript AND PHP.
Thanx
Phil
PS: Code below:
<?
require_once('/home/nordicnet.no/include/nordicnet_globa l_vars_function s.php
');
require_once("$ ACTUAL_STARTPAT H/reports/include/reports_global_ vars.php");
require_once("$ ACTUAL_STARTPAT H/reports/include/reports_classes .php");
if ($hasChosenRepo rt) {
/*
$stuff = '<html><head><t itle>stuff</title></head><body><b>H ello</b>
World</body></html>';
$fileName = 'stuff.doc';
header("Content-type: application/msword");
header("Content-Length: " . strlen(ltrim($s tuff)));
header("Content-Disposition: inline; filename=" . $fileName);
echo ltrim($stuff);
*/
print_r($_POST) ;
print_r("<P>");
print_r($report Type);
}
if (!$hasChosenRep ort) {
$report = new Report;
$report->dbOpen();
?>
<html>
<head>
<title><?= $brand ?>s Report</title>
<link rel=stylesheet href=/stylesheets/nordicnet_style .css type=text/css>
</head>
<script>
<!--
function isValidReportOp tion() {
hasPickedUsers = false;
userArray = eval('document. reportForm.user s' . String.fromChar Code(91) .
String.fromChar Code(93));
for (i = 0; i < userArray.lengt h; i++) {
if (userArray[i].selected) {
hasPickedUsers = true;
break;
}
}
if (!hasPickedUser s) {
alert("Velg brukern for report");
return false;
}
hasPickedType = false;
for (i = 0; i < document.report Form.reportType .length; i++) {
if (document.repor tForm.reportTyp e[i].checked) {
hasPickedType = true;
break;
}
}
if (!hasPickedType ) {
alert("Velg reportstil");
return false;
}
hasPickedInfo = false;
for (i = 0; i < document.report Form.reportInfo .length; i++) {
if (document.repor tForm.reportInf o[i].checked) {
hasPickedInfo = true;
break;
}
}
if (!hasPickedInfo ) {
alert("Velg reportinfo");
return false;
}
}
//-->
</script>
<body>
<h2><?= $font ?>Jeg vill få <?= $brand ?>s reporten!</font></h2>
<a href=<?= $PHP_SELF ?>>Reset for ny reporten</a>
<form name=reportForm method=post action="<?= $PHP_SELF ?>"
onSubmit="retur n isValidReportOp tion()">
<?= $font ?>Velg brukern for reporten:</font><br>
<?
$reportQuery = $report->getUsers();
echo $report->userDropdown($ reportQuery);
?>
<p>
<?= $font ?>Velg reportstil:</font><br>
<? echo $report->getTypes($repo rt->getReportStilT ypes(), 'reportType'); ?>
<p>
<?= $font ?>Velg reportinfo:</font><br>
<? echo $report->getTypes($repo rt->getReportInfoT ypes(), 'reportInfo'); ?>
<p>
<input type=hidden name=hasChosenR eport value=1>
<input type=submit name=submit value="Få Min Report Nu!"
class=blue_butt on>
</form>
</body>
</html>
<?
$report->dbClose();
$report = null;
}
?>
element and you have to do both server-side and client-side validation?
I am honestly not sure how to do it in Javascript (I keep getting errors
thrown that I can't verify because the form processes onto itself too
quickly for me to check the Javascript errors) because the select multiple
form element name has to be in the form of "var[]" because PHP will then
recognize $var as an array and not as a scalar (if it sees "$var" it will
only capture the LAST element you entered in the select multiple, if it sees
"$var[]" it gets them all).
However, "var[]" is not friendly to Javascript either, at least as far as I
can tell. So, what I need to find out is how anyone out there has ever
dealt with select-multiple form elements for BOTH Javascript AND PHP.
Thanx
Phil
PS: Code below:
<?
require_once('/home/nordicnet.no/include/nordicnet_globa l_vars_function s.php
');
require_once("$ ACTUAL_STARTPAT H/reports/include/reports_global_ vars.php");
require_once("$ ACTUAL_STARTPAT H/reports/include/reports_classes .php");
if ($hasChosenRepo rt) {
/*
$stuff = '<html><head><t itle>stuff</title></head><body><b>H ello</b>
World</body></html>';
$fileName = 'stuff.doc';
header("Content-type: application/msword");
header("Content-Length: " . strlen(ltrim($s tuff)));
header("Content-Disposition: inline; filename=" . $fileName);
echo ltrim($stuff);
*/
print_r($_POST) ;
print_r("<P>");
print_r($report Type);
}
if (!$hasChosenRep ort) {
$report = new Report;
$report->dbOpen();
?>
<html>
<head>
<title><?= $brand ?>s Report</title>
<link rel=stylesheet href=/stylesheets/nordicnet_style .css type=text/css>
</head>
<script>
<!--
function isValidReportOp tion() {
hasPickedUsers = false;
userArray = eval('document. reportForm.user s' . String.fromChar Code(91) .
String.fromChar Code(93));
for (i = 0; i < userArray.lengt h; i++) {
if (userArray[i].selected) {
hasPickedUsers = true;
break;
}
}
if (!hasPickedUser s) {
alert("Velg brukern for report");
return false;
}
hasPickedType = false;
for (i = 0; i < document.report Form.reportType .length; i++) {
if (document.repor tForm.reportTyp e[i].checked) {
hasPickedType = true;
break;
}
}
if (!hasPickedType ) {
alert("Velg reportstil");
return false;
}
hasPickedInfo = false;
for (i = 0; i < document.report Form.reportInfo .length; i++) {
if (document.repor tForm.reportInf o[i].checked) {
hasPickedInfo = true;
break;
}
}
if (!hasPickedInfo ) {
alert("Velg reportinfo");
return false;
}
}
//-->
</script>
<body>
<h2><?= $font ?>Jeg vill få <?= $brand ?>s reporten!</font></h2>
<a href=<?= $PHP_SELF ?>>Reset for ny reporten</a>
<form name=reportForm method=post action="<?= $PHP_SELF ?>"
onSubmit="retur n isValidReportOp tion()">
<?= $font ?>Velg brukern for reporten:</font><br>
<?
$reportQuery = $report->getUsers();
echo $report->userDropdown($ reportQuery);
?>
<p>
<?= $font ?>Velg reportstil:</font><br>
<? echo $report->getTypes($repo rt->getReportStilT ypes(), 'reportType'); ?>
<p>
<?= $font ?>Velg reportinfo:</font><br>
<? echo $report->getTypes($repo rt->getReportInfoT ypes(), 'reportInfo'); ?>
<p>
<input type=hidden name=hasChosenR eport value=1>
<input type=submit name=submit value="Få Min Report Nu!"
class=blue_butt on>
</form>
</body>
</html>
<?
$report->dbClose();
$report = null;
}
?>
Comment