Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Parse error with php/java script

0 views
Skip to first unread message

Ian Davies

unread,
Nov 22, 2005, 5:06:59 PM11/22/05
to
Hello
I have found the following script php/java for dynamic menu lists. Where a
selection from the first updates (filters items in) the other. I have
modified it for my tables.
However I am getting an error

Parse error: parse error, unexpected T_VAR in
e:\domains\i\iddsoftware.co.uk\user\htdocs\QuestionDB\Questions.php on line
42

line 42 being
var mainselect = document.FormName.MainCategory;

Im fairly new to php and dont use Java upto now. Can anyone see where I ve
gone wrong

<?php
session_start();
include("../include/connection.php");
include("../Secure/login.php");
$Heading= 'QUESTION SELECTOR';
$Menu='<a href="../Secure/logout.php">Logout</a><br>';
include 'HeadQuest.php';


$Query = "SELECT SubjectNo, SubjectDesc, StatusID FROM Subjects WHERE
StatusID = 1 ORDER BY SubjectDesc ASC";
$Result = mysql_query( $Query, $conn );

?>

<HTML>
<HEAD>
<SCRIPT language="JavaScript">

function BodyLoad()
{

var select = document.FormName.MainCategory;

select.options[0] = new Option("Choose One");
select.options[0].value = 0;

<?PHP

$ctr = 1;
While( $Row = mysql_fetch_array($Result) ) {
echo "select.options[".$ctr."] = new
Option(\"".$Row['SubjectNo']."\");\n";
echo "select.options[".$ctr."].value = \"".$Row['SubjectNo']."\";\n";
$ctr++;
}
?>
}

function Fill_Sub()
{

<?PHP
var mainselect = document.FormName.MainCategory;
var subselect = document.FormName.SubCategory;

if( mainselect.options[mainselect.selectedIndex].value != 0 ) {

subselect.length = 0;
}

$Query = "SELECT SubjectNo, SubjectDesc, StatusID FROM Subjects WHERE
StatusID = 1 ORDER BY SubjectDesc ASC";
$Result = mysql_query($Query, $conn );

while( $Row = mysql_fetch_array($Result) ) {
?>


if( mainselect.options[mainselect.selectedIndex].text == "<?PHP echo
$Row['SubjectNo']; ?>" ) {
<?PHP

$Query2 = "SELECT TopicID, TopicDesc, KS, SubjectNo FROM ttopic WHERE
StatusID = 1 AND SubjectNo = ".$row['SubjectNo']." ORDER BY TopicDesc ASC";


$Result2 = mysql_query($Query2, $conn );

$ctr = 0;

While( $Row2 = mysql_fetch_array($Result2) ) {
echo "subselect.options[".$ctr."] = new
Option(\"".$Row2['TopicID']."\");\n";
echo "subselect.options[".$ctr."].value =
\"".$Row2['TopicID']."\";\n";
$ctr++;
}
?>
}
}

<?PHP
}

mysql_close($conn);
?>
}

</SCRIPT>
</HEAD>

<BODY onload="BodyLoad();">
<FORM name="FormName" method="POST" action="">
<TABLE border="1">
<TR>
<TD>Main Category</TD>
<TD>Sub Category</TD>
</TR>
<TR>
<TD>
<SELECT name="MainCategory" onchange="Fill_Sub();">
</SELECT>
</TD>

<TD>
<SELECT name="SubCategory" size="4">
</SELECT>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>


Justin Koivisto

unread,
Nov 22, 2005, 5:10:46 PM11/22/05
to
Ian Davies wrote:
>
> Parse error: parse error, unexpected T_VAR in
> e:\domains\i\iddsoftware.co.uk\user\htdocs\QuestionDB\Questions.php on line
> 42
>
<snip>

> function Fill_Sub()
> {
>
> <?PHP

This is in the wrong spot...

> var mainselect = document.FormName.MainCategory;
> var subselect = document.FormName.SubCategory;
>
> if( mainselect.options[mainselect.selectedIndex].value != 0 ) {
>
> subselect.length = 0;
> }

This is where the "<?php" should be...

> $Query = "SELECT SubjectNo, SubjectDesc, StatusID FROM Subjects WHERE
> StatusID = 1 ORDER BY SubjectDesc ASC";
> $Result = mysql_query($Query, $conn );

<snip>

--
Justin Koivisto, ZCE - jus...@koivi.com
http://koivi.com

Ian Davies

unread,
Nov 22, 2005, 6:09:50 PM11/22/05
to
Thanks
That helped
But now get a syntax error on line 69
which is

echo "subselect.options[".$ctr."].value =
\"".$Row2['TopicID']."\";\n";

my debugger is saying

if( mainselect.options[mainselect.selectedIndex].value == "12" ) {
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in e:\domains\i\mysite\user\htdocs\myfolder\Questions.php on line
67
} }

It would seem that there is a problem with

mainselect.options[mainselect.selectedIndex].value

Ian

"Justin Koivisto" <jus...@koivi.com> wrote in message
news:uPidnaxdQ-f...@onvoy.com...

Justin Koivisto

unread,
Nov 22, 2005, 6:37:29 PM11/22/05
to
Ian Davies wrote:
> Thanks
> That helped
> But now get a syntax error on line 69
> which is
>
> echo "subselect.options[".$ctr."].value =
> \"".$Row2['TopicID']."\";\n";
>
> my debugger is saying
>
> if( mainselect.options[mainselect.selectedIndex].value == "12" ) {
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
> resource in e:\domains\i\mysite\user\htdocs\myfolder\Questions.php on line
> 67
> } }
>
> It would seem that there is a problem with
>
> mainselect.options[mainselect.selectedIndex].value

Or there's something wrong with the query. You blindly start a while
loop without first checking to see if the query has succeeded. In this
case, if $Result isn't a valid result resource, the query failed for
some reason... to help debug, use mysql_error() to see what the problem is.

RobG

unread,
Nov 22, 2005, 7:06:53 PM11/22/05
to
Ian Davies wrote:
> Hello
> I have found the following script php/java for dynamic menu lists. Where a
> selection from the first updates (filters items in) the other. I have
> modified it for my tables.
> However I am getting an error

When posting code, post what is received at the client (use view
source). The PHP side should be discussed in a PHP forum.

Once you have sorted out what the client should get, then you can work
out how to generate it.


> Parse error: parse error, unexpected T_VAR in
> e:\domains\i\iddsoftware.co.uk\user\htdocs\QuestionDB\Questions.php on line
> 42
>
> line 42 being
> var mainselect = document.FormName.MainCategory;
>
> Im fairly new to php and dont use Java upto now. Can anyone see where I ve
> gone wrong

Asking PHP questions in a JavaScript group? Thinking JavaScript is
Java? ;-)


> <?php
> session_start();
> include("../include/connection.php");
> include("../Secure/login.php");
> $Heading= 'QUESTION SELECTOR';
> $Menu='<a href="../Secure/logout.php">Logout</a><br>';
> include 'HeadQuest.php';
>
>
> $Query = "SELECT SubjectNo, SubjectDesc, StatusID FROM Subjects WHERE
> StatusID = 1 ORDER BY SubjectDesc ASC";
> $Result = mysql_query( $Query, $conn );
>
> ?>
>
> <HTML>
> <HEAD>
> <SCRIPT language="JavaScript">

The language attribute is deprecated, type is required:

<script type="text/javascript">


>
> function BodyLoad()
> {
>
> var select = document.FormName.MainCategory;
>
> select.options[0] = new Option("Choose One");
> select.options[0].value = 0;

IE has issues with setting option attributes this way. Set all the
values in one go (hey, saves a line of code too):

select.options[0] = new Option("Choose One", "0", true, true);


sets the first option to have text 'Choose One', value as '0', default
selected as true and currently selected as true.


>
> <?PHP
>
> $ctr = 1;
> While( $Row = mysql_fetch_array($Result) ) {
> echo "select.options[".$ctr."] = new
> Option(\"".$Row['SubjectNo']."\");\n";
> echo "select.options[".$ctr."].value = \"".$Row['SubjectNo']."\";\n";
> $ctr++;
> }
> ?>
> }
>
> function Fill_Sub()
> {
>
> <?PHP
> var mainselect = document.FormName.MainCategory;
> var subselect = document.FormName.SubCategory;
>
> if( mainselect.options[mainselect.selectedIndex].value != 0 ) {

The value of a form control is always returned as a string, so be
careful when evaluating it. In this case it is OK because the string
'0' and number 0 will be evaluated as you expect, but sometimes it will
trip you up.


>
> subselect.length = 0;
> }
[...]


> <TD>
> <SELECT name="SubCategory" size="4">
> </SELECT>
> </TD>

A select element with no options is invalid HTML.

[...]


--
Rob

Justin Koivisto

unread,
Nov 23, 2005, 9:28:21 AM11/23/05
to
RobG wrote:
> When posting code, post what is received at the client (use view
> source). The PHP side should be discussed in a PHP forum.

It was - 4 of them.

> Asking PHP questions in a JavaScript group? Thinking JavaScript is
> Java? ;-)

More like someone not sure if it was a php or js thing. The post went to
4 php groups, and one js group...

Ian Davies

unread,
Nov 23, 2005, 2:13:37 PM11/23/05
to
Hello

The script here is modified from a previous script where I have not
atempted to use java to update a second dropdownmenu/listbox (havent decided
which to use yet) from the item selected in the first. In the previous
script I use the exact same sqls which work fine.
Go here to see these SQLs working in the dropdown lists
http://www.iddsoftware.co.uk/QuestionDB/QuestionsBrowse.php

Ian


"Justin Koivisto" <jus...@koivi.com> wrote in message

news:XeidnVQDys8rNh7e...@onvoy.com...

0 new messages