This is a discussion on Parse error with php/java script within the alt.comp.lang.php forums, part of the PHP Programming Forums category; Hello I have found the following script php/java for dynamic menu lists. Where a selection from the first updates (...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
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\Questio nDB\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> |
|
|||
|
Ian Davies wrote:
> > Parse error: parse error, unexpected T_VAR in > e:\domains\i\iddsoftware.co.uk\user\htdocs\Questio nDB\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 - justin@koivi.com http://koivi.com |
|
|||
|
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" <justin@koivi.com> wrote in message news:uPidnaxdQ-f-Ch7eRVn-ow@onvoy.com... > Ian Davies wrote: > > > > Parse error: parse error, unexpected T_VAR in > > e:\domains\i\iddsoftware.co.uk\user\htdocs\Questio nDB\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 - justin@koivi.com > http://koivi.com |
|
|||
|
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. -- Justin Koivisto, ZCE - justin@koivi.com http://koivi.com |
|
|||
|
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\Questio nDB\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 |
|
|||
|
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... -- Justin Koivisto, ZCE - justin@koivi.com http://koivi.com |
|
|||
|
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/Questio...ionsBrowse.php Ian "Justin Koivisto" <justin@koivi.com> wrote in message news:XeidnVQDys8rNh7enZ2dnUVZ_tGdnZ2d@onvoy.com... > 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. > > -- > Justin Koivisto, ZCE - justin@koivi.com > http://koivi.com |
![]() |
| Thread Tools | |
| Display Modes | |
|
|