Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 179
  • Last Modified:

Form Checkboxes Dynamically returned

Hi Experts,

I have a form which I have a number of checkboxes for as search criteria for cars, rather than manually insert the checkboxes I am pulling them from my database so it returns checkboxes like:-

Vauxhall
Ford
Seat

 etc etc

I originally named the checkboxes a value (vehicles) but when returning the results of the selected vehicles it only returns the latest selection.

I have given my checkbox name and values my vehicleid to identify the selections but can anyone help me as to how to get all the id's selected in a built up string with comma's so something like this:-

1,2,3 (1,2,3 being the vehicle id) so I can use this string in my SQL statement.

Thanks
Tim
The code:-
$sql='SELECT vehicle_id, display_name FROM vehicles';
$sqlresult=mysql_query($sql);
$sqlcount=mysql_num_rows($sqlresult);
 
 
The checkboxes:-
while($vehiclelist=mysql_fetch_array($sqlresult,MYSQL_NUM))
{
echo '<input type="checkbox" name="'.$vehiclelist[0].'" value="'.$vehiclelistt[0].'" />'.$vehiclelist[1].'<br/>';
}

Open in new window

0
EzEApostle
Asked:
EzEApostle
  • 4
  • 3
1 Solution
 
QualitySoftwareDevelopmentCommented:
I'm not quite sure on what you need?! ... do you want the boxes to be checked or do you want to pull out a list with only the selected boxes?
0
 
EzEApostleAuthor Commented:
On the user filling out the search form I need the ID's (name) of the checkboxes that were selected :) by default they're all unselected
0
 
QualitySoftwareDevelopmentCommented:
Ok, i think there is a smarter way retrieving the content of the $_post, but the follwing should work
$sql='SELECT vehicle_id, display_name FROM vehicles';
$sqlresult=mysql_query($sql);
 
$sqlnew='SELECT vehicle_id, display_name FROM vehicles WHERE ';
$firstruntrough=0;
 
while($vehiclelist=mysql_fetch_array($sqlresult))
{
   if($_POST["yourchecknames"]==1){
      if($firstrunthrough==0){
         $firstrunthrough=1;
         $sqlnew.="vehicle_id = $_POST["yourcheckvalue"] ";
      } else {
         $sqlnew.="OR vehicle_id = $_POST["yourcheckvalue"] ";
      }
   }
}

Open in new window

0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
EzEApostleAuthor Commented:
I dont think that will work because $_POST["yourchecknames"] is set to different ID's i.e. the Vehicle ID
0
 
QualitySoftwareDevelopmentCommented:
Ok then this should work
$sql='SELECT vehicle_id, display_name FROM vehicles';
$sqlresult=mysql_query($sql);
 
$sqlnew='SELECT vehicle_id, display_name FROM vehicles WHERE ';
$firstruntrough=0;
 
while($vehiclelist=mysql_fetch_array($sqlresult))
{
   if($_POST["yourchecknames"] != 0){
      if($firstrunthrough==0){
         $firstrunthrough=1;
         $sqlnew.="vehicle_id = $_POST["yourchecknames"] ";
      } else {
         $sqlnew.="OR vehicle_id = $_POST["yourchecknames"] ";
      }
   }
}

Open in new window

0
 
EzEApostleAuthor Commented:
Again, I can't see it working because, this value $_POST["yourchecknames"] isn't a single value but many

I refer to my previous statement:-
echo '<input type="checkbox" name="'.$vehiclelist[0].'" value="'.$vehiclelistt[0].'" />'.$vehiclelist[1].'<br/>';
0
 
EzEApostleAuthor Commented:
I've fixed it myself


			$sql='SELECT vehicle_id, display_name FROM vehicles';
			$sqlresult=mysql_query($sql);
			$sqlcount=mysql_num_rows($sqlresult);
			
				while($vehiclelist=mysql_fetch_array($sqlresult,MYSQL_NUM))
				{				
					for ($i=0; $i <= $sqlcount; ++$i) {
					   if(isset($_POST[''.$vechiclelist[$i].''])) {echo $_POST[''.$vehiclelist[$i].''].',';}
					}
				}				

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now