PHP generated javascript problem with dual dropdowns..

From: Date: Mon, 17 Jul 2000 08:50:12 +0000
Subject: PHP generated javascript problem with dual dropdowns..
Groups: php.general 
Request: Send a blank email to php-general+get-6897@lists.php.net to get a copy of this message
I've sent this code out, which I thought was working, to a few people who have asked for it on this list.. maybe they've had some experience with it and have fixed it.. but I'm getting really stuck on something, and I don't know Javascript well enough to debug this. The code below is based on code at http://www.restorationhardware.com/index.htma?SCREEN=store_locator. The code works fine in NS4 with no Javascript errors, and I've heard it works ok in IE4.. but IE5 either gives a variety of error messages.. the ones I've gotten have been: Error: Line 1159 (the last line of code..) echo "<SCRIPT Language=\"JavaScript\">UpdateCity();</SCRIPT>\n</FORM>"; Object Expected Error or Line 13: in the first function call.. echo "\t\tdocument.choose_store.TEAMNAME.options[City].text = '';\n"; "Unspecified Error".. which doesn't help me very much at all. The script seems to work ok with the Unspecified Error msg, but the other one effectively breaks it. I'm not sure what's causing either of them to generate, but the difference between the two seems to be spacing.. a copy and paste from one server to another changed the error msg, but a ftp transfer kept it the same. If anyone can help, I would be extremely grateful, as I'm sure a few others out there who mail this list on a near weekly basis asking for code that does this.. The code at restoration hardware seems to work, but of course we can only see the generated side of it.. Chad <? require("/etc/globals.php"); require("common.php"); // Connect to the Database if (!($link=mysql_pconnect($hostname, $username, $password))) { DisplayErrMsg(sprintf("error connecting to host %s, by user %s", $hostname, $username)) ; exit() ; } // Select the Database if (!mysql_select_db($databasename, $link)) { DisplayErrMsg(sprintf("Error in selecting %s database", $databasename)) ; DisplayErrMsg(sprintf("error:%d %s", mysql_errno($link), mysql_error($link))) ; exit() ; } site_header("mbtest"); $fillvendor = mysql_query("select distinct vendor, model from MainboardDB"); $fillmodel = mysql_query("select distinct vendor, model from MainboardDB"); $store_state = array(); $store_id = array(); $store_city = array(); while ($row = mysql_fetch_array($fillvendor)) { array_push($store_state,$row["vendor"]); array_push($store_id,$row["model"]); } while ($row = mysql_fetch_array($fillmodel)) { array_push($store_city,$row["model"]); } $numStores = mysql_num_rows($fillmodel); $last_value = ''; while ( list( $index, $value) = each ( $store_state)) { if ($last_value == $value) { continue; } else { $distinct_states[] = $value; } $last_value = $value; } /* create the javascript function the updates the city list */ echo "<SCRIPT Language=\"JavaScript\">\n"; echo "function UpdateCity()\n"; echo "{\n"; /* clear the city selector */ echo "\tvar City = document.choose_store.TEAMNAME.options.length;\n"; echo "\twhile(City > 0)\n"; echo "\t{\n"; echo "\t\tCity--;\n"; echo "\t\tdocument.choose_store.TEAMNAME.options[City].text = '';\n"; echo "\t\tdocument.choose_store.TEAMNAME.options[City].value = '';\n"; echo "\t}\n\n"; echo "\tdocument.choose_store.TEAMNAME.options[0].selected = true;\n\n"; /* figure out which state is selected*/ echo "\tvar StateSelected = 0;\n"; echo "\twhile(document.choose_store.LEAGUENAME.options[StateSelected].selected==f alse) StateSelected++;\n\n"; $StoreState = ""; $CityCount = 0; $RowCount = 0; while($RowCount < $numStores) { $store_ID = $store_id[$RowCount]; $store_State = $store_state[$RowCount]; $store_City = $store_city[$RowCount]; if($StoreState != $store_State) { if($StoreState != "") { echo "\t}\n"; } echo "\tif(document.choose_store.LEAGUENAME.options[StateSelected].value == '$store_State')\n"; echo "\t{\n"; echo "\t\tdocument.choose_store.TEAMNAME.options[0].value = 0;\n"; echo "\t\tdocument.choose_store.TEAMNAME.options[0].text = 'Choose a Model';\n\n"; $StoreState = $store_State; $CityCount = 1; } echo "\t\tdocument.choose_store.TEAMNAME.options[$CityCount].value = '$store_ID';\n"; echo "\t\tdocument.choose_store.TEAMNAME.options[$CityCount].text = '$store_City';\n\n"; $CityCount++; $RowCount++; } echo "\t}\n"; echo "}\n"; echo "</SCRIPT>\n\n"; echo "<FORM action=\"mbview.php\" METHOD=\"POST\" target=\"_blank\" NAME=\"choose_store\"\n>"; echo "<p>Vendor Name : "; echo "<SELECT NAME=\"LEAGUENAME\" onChange=\"UpdateCity();\">\n"; echo "<OPTION VALUE=\"0\">Choose a Vendor"; $RowCount = 0; while($RowCount < count($distinct_states)) { echo "<OPTION VALUE=\""; echo $distinct_states[$RowCount]; echo "\">"; echo $distinct_states[$RowCount]; echo "\n"; $RowCount++; } echo "</SELECT>\n"; /* Now we need to know how many cities are listed for the state with the most stores */ /* select count(*) as items from store group by State order by items desc */ $MaxItems = $numStores; echo "Model : <SELECT NAME=\"TEAMNAME\">\n"; $RowCount = 0; while($RowCount <= $MaxItems) { echo "<OPTION VALUE=\""; echo $store_city[$RowCount]; echo "\">"; echo "Choose a Model\n"; $RowCount++; } echo "</SELECT><BR><BR>\n"; echo "<input type=\"submit\">"; echo "</CENTER>"; echo "<SCRIPT Language=\"JavaScript\">UpdateCity();</SCRIPT>\n</FORM>"; ?> </body> </html> [admin@cb029 main]$ Chad Day Beach Associates When I speak german... I think german in my head... but like...Do skript kiddies see a w40l3 8uncha 1's and 0's and 3's and 4's and 7's in their h34d'5 w43n t43y R +a1k1n6 ? -- SirStanley

« previous php.general (#6897) next »