I am a newbie to javascript and have written the following code to make sure that users have checked a radio button. It is set to work on submit. The form is generated by php and has approx 70 options; users may select one. I am not even sure if the script is being processed because if I test it by submitting without checking a button, the program tries to load the next page without passing a superglobal, and of course I get a php error: "Notice: Undefined index: item in C:\Program Files\EasyPHP 2.0b1\www\dap\subtypemenu.php on line 24". :'( Is there something obvious in my code that is preventing it from executing? Thanks so much in advance for your help. :)

<script language='JavaScript 1.2'>

function submitIt(form)
	myOption = -1
	for (i=0; i<document.prodsearch.item.length; i++)
		if (document.prodsearch.item[i].checked)
		myOption = i
			if (myOption == -1)
			alert("You must make a selection.")
			return false
	return true

Post your html code also or atleast describe what is prodsearch, and other var used in javaScript.
One more important thing, dont rely upon javaScript alone for validation, write server side equivalent code for that, as any one can alter your JavaScript code and send wrong info to server.

Hi Danger,
Sorry about the omission; I am still new to this. I don't have html pages per se, they are generated on the fly by php. But here is the php that makes up prodsearch.php, and below that, I have added the main include, aniprod.php.


// Program name: prodsearch.php
// Description: Program displays list of radio buttons with products grouped by category from product database info.

//set variables and implement error handling
 	require "includes/db.php";

//establish connection to host and db
  	or die("Couldn't connect to server");
  	or die("Couldn't select database");

// retrieve html header
	include_once ('templates/header.tpl');

// retrieve nav bar
	include_once ('templates/nav.tpl');

// create form containing radio buttons
	   	echo "<form onSubmit='return submitIt(this)' action='subtypemenu.php' method='POST'>\n";
//pass values from aniloc

// create page structure
 	echo "<h1><b>Search for $_POST[prodserv]s for $_POST[pet]s </b></h1>
	 <p>Please Choose the $_POST[prodserv] You Are Shopping for from Following List:</p>\n";

//category bit

//get category from the database
$query = "SELECT * FROM category
		  WHERE CATEGORY_TYPE = '$_POST[prodserv]'
		  AND ANIMAL_NAME='$_POST[pet]'";

	or showerror();
		while ($row=@mysql_fetch_array($category))
			echo "<p class='guide'>";
			print $row['CATEGORY_NAME'];
			echo "</p>";

	//get product bit
				include ('includes/aniprod.php');

		}   //looping to get other categories

//fence footnote


 echo "<p><input type='submit' value='Select from $_POST[prodserv]s'></form>\n";

// retrieve footer
	include_once ('templates/footer.tpl');


//Program: aniprod.php
//Description: this program selects only products that relate to a specific category abbrev to populate that category for prodsearch module

//query db
	 $query="SELECT * FROM product
	  	AND ANIMAL_NAME='$_POST[pet]'";

	or showerror();

	   	while ($row=@mysql_fetch_array($result))

	 		echo "<input type='radio' name='item' value='$PRODUCT_ABBREV'><b>$PRODUCT_NAME</b>\n";

	 		//fence footnote symbol

	 		echo "<input type='hidden' name='issubtype' value='$ISSUBTYPE'>";

	 		echo "<br>\n";
	   	} 	 // looping to get other products under the same category


Thank you so much; I appreciate you looking at my code. :)

This article has been dead for over six months. Start a new discussion instead.