1

I was wondering how to convert my radio buttons into checkboxes because I want to insert multiple options for the same record... for example: I want a game to be in the "Strategy" and "Action" category, so only a checkbox can make me achieve that.

here is my code for inserting a game with radio buttons:

<?php
session_start();

if(!isset($_SESSION['user_name'])){

header("location:login.php");

}
else {
?>
<?php
include("../includes/connect.php");

$action_status = 'unchecked';
$sports_status = 'unchecked';

if(isset($_POST['submit'])){

$game_name = $_POST['game_name'];
$game_category = $_POST['game_category'];
$game_keywords = $_POST['game_keywords'];
$game_image = $_FILES['game_image']['name'];
$image_tmp = $_FILES['game_image']['tmp_name'];
$game_code = $_FILES['game_code']['name'];
$code_tmp = $_FILES['game_code']['tmp_name'];
$game_file = $_FILES['game_file']['name'];
$file_tmp = $_FILES['game_file']['tmp_name'];
$game_desc = $_POST['game_desc'];

if($game_name=='' or $game_category=='' or $game_keywords=='' or $game_image=='' or $game_code=='' or $game_file==''){

echo "<script>alert('Please enter all the fields below!')</script>";

exit();

}
else {

 $path = "../games/$game_name";

 mkdir("$path", 0777);

 move_uploaded_file($image_tmp,"../images/games_images/$game_image");

 move_uploaded_file($code_tmp,"$path/$game_code");

 move_uploaded_file($file_tmp,"$path/$game_file");

 $insert_query = "insert into games (game_name,game_category,game_keywords,game_image,game_code,game_file,game_desc) values ('$game_name','$game_category','$game_keywords','$game_image','$game_code','$game_file','$game_desc')";

 if($game_category == '3d'){

 $three_d_status = 'checked';

 }else if($game_category == 'action'){

 $action_status = 'checked';

 }else if($game_category == 'adventure'){

 $adventure_status = 'checked';

 }else if($game_category == 'arcade'){

 $arcade_status = 'checked';

 }else if($game_category == 'brain'){

 $brain_status = 'checked';

 }else if($game_category == 'cards'){

 $cards_status = 'checked';

 }else if($game_category == 'destruction'){

 $destruction_status = 'checked';

 }else if($game_category == 'education'){

 $education_status = 'checked';

 }else if($game_category == 'extreme'){

 $extreme_status = 'checked';

 }else if($game_category == 'fighting'){

 $fighting_status = 'checked';

 }else if($game_category == 'flying'){

 $flying_status = 'checked';

 }else if($game_category == 'girls'){

 $girls_status = 'checked';

 }else if($game_category == 'holidays'){

 $holidays_status = 'checked';

 }else if($game_category == 'hidden_objects'){

 $hidden_objects_status = 'checked';

 }else if($game_category == 'motocross'){

 $motocross_status = 'checked';

 }else if($game_category == 'multiplayer'){

 $multiplayer_status = 'checked';

 }else if($game_category == 'new'){

 $new_status = 'checked';

 }else if($game_category == 'puzzle'){

 $puzzle_status = 'checked';

 }else if($game_category == 'racing'){

 $racing_status = 'checked';

 }else if($game_category == 'fps'){

 $fps_status = 'checked';

 }else if($game_category == 'space'){

 $space_status = 'checked';

 }else if($game_category == 'sports'){

 $sports_status = 'checked';

 }else if($game_category == 'strategy'){

 $strategy_status = 'checked';

 }else if($game_category == 'stunt'){

 $stunt_status = 'checked';

 }else if($game_category == 'top_rated'){

 $top_rated_status = 'checked';

 }else if($game_category == 'words'){

 $words_status = 'checked';

 }else if($game_category == 'zombies'){

 $zombies_status = 'checked';

 }

 if(mysql_query($insert_query)){

 echo "<script>alert('The Game Uploaded Successfully!')</script>";

 echo "<script>window.open('view_games.php','_self')</script>";

 }

}

}

?>

<?php } ?>

<!DOCTYPE HTML>
<html>
<head>
<link href="css/insert_game.css" rel="stylesheet" type="text/css">
</head>
<body>

<form method="post" id="insert_form" action="insert_games.php" enctype="multipart/form-data">

<table id="insert_games_table" width="680" border="1" align="center">

<tr>
 <td id="insert_games_table_title" colspan="2" align="center">Insert New Game</td>
</tr>

<tr>
 <td id="insert_cat_name">Game name:</td>
 <td><input type="text" name="game_name" size="80"></td>
</tr>

<tr>
 <td id="insert_cat_name">Game category:</td>
 <td id="insert_cat_select"><input class="radio" type="radio" name="game_category" value="3d"<?php print $three_d_status; ?>/><span>3D</span><br>
 <input class="radio" type="radio" name="game_category" value="action"<?php print $action_status; ?>/><span>Action</span><br>
 <input class="radio" type="radio" name="game_category" value="adventure"<?php print $adventure_status; ?>/><span>Adventure</span><br>
 <input class="radio" type="radio" name="game_category" value="arcade"<?php print $arcade_status; ?>/><span>Arcade</span><br>
 <input class="radio" type="radio" name="game_category" value="brain"<?php print $brain_status; ?>/><span>Brain</span><br>
 <input class="radio" type="radio" name="game_category" value="cards"<?php print $cards_status; ?>/><span>Cards</span><br>
 <input class="radio" type="radio" name="game_category" value="destruction"<?php print $destruction_status; ?>/><span>Destruction</span><br>
 <input class="radio" type="radio" name="game_category" value="education"<?php print $education_status; ?>/><span>Education</span><br>
 <input class="radio" type="radio" name="game_category" value="extreme"<?php print $extreme_status; ?>/><span>Extreme</span><br>
 <input class="radio" type="radio" name="game_category" value="fighting"<?php print $fighting_status; ?>/><span>Fighting</span><br>
 <input class="radio" type="radio" name="game_category" value="flying"<?php print $flying_status; ?>/><span>Flying</span><br>
 <input class="radio" type="radio" name="game_category" value="girls"<?php print $girls_status; ?>/><span>Girls</span><br>
 <input class="radio" type="radio" name="game_category" value="holidays"<?php print $holidays_status; ?>/><span>Holidays</span><br>
 <input class="radio" type="radio" name="game_category" value="hidden_objects"<?php print $hidden_objects_status; ?>/><span>Hidden Objects</span><br>
 <input class="radio" type="radio" name="game_category" value="motocross"<?php print $motocross_status; ?>/><span>Motocross</span><br>
 <input class="radio" type="radio" name="game_category" value="multiplayer"<?php print $multiplayer_status; ?>/><span>Multiplayer</span><br>
 <input class="radio" type="radio" name="game_category" value="new"<?php print $new_status; ?>/><span>New Games</span><br>
 <input class="radio" type="radio" name="game_category" value="puzzle"<?php print $puzzle_status; ?>/><span>Puzzle</span><br>
 <input class="radio" type="radio" name="game_category" value="racing"<?php print $racing_status; ?>/><span>Racing</span><br>
 <input class="radio" type="radio" name="game_category" value="fps"<?php print $fps_status; ?>/><span>FPS</span><br>
 <input class="radio" type="radio" name="game_category" value="space"<?php print $space_status; ?>/><span>Space</span><br>
 <input class="radio" type="radio" name="game_category" value="sports"<?php print $sports_status; ?>/><span>Sports</span><br>
 <input class="radio" type="radio" name="game_category" value="strategy"<?php print $strategy_status; ?>/><span>Strategy</span><br>
 <input class="radio" type="radio" name="game_category" value="stunt"<?php print $stunt_status; ?>/><span>Stunt</span><br>
 <input class="radio" type="radio" name="game_category" value="top_rated"<?php print $top_rated_status; ?>/><span>Top Rated</span><br>
 <input class="radio" type="radio" name="game_category" value="words"<?php print $words_status; ?>/><span>Words</span><br>
 <input class="radio" type="radio" name="game_category" value="zombies"<?php print $zombies_status; ?>/><span>Zombies</span><br></td>
</tr>

<tr>
 <td id="insert_cat_name">Game keywords:</td>
 <td><textarea id="insert_text_area" name="game_keywords"></textarea></td>
</tr>

<tr>
 <td id="insert_cat_name">Game image:</td>
 <td><input type="file" name="game_image"></td>
</tr>

<tr>
 <td id="insert_cat_name">Game HTML:</td>
 <td><input type="file" name="game_code"></td>
</tr>

<tr>
 <td id="insert_cat_name">Game Flash File:</td>
 <td><input type="file" name="game_file"></td>
</tr>

<tr>
 <td id="insert_cat_name">Game description:</td>
 <td><textarea id="insert_text_area" name="game_desc"></textarea></td>
</tr>

<tr>
 <td colspan="2" align="center"><input type="submit" name="submit" value="Publish Game Now" id="insert_submit"></td>
</tr>

</form>

</body>
</html>

Anyone?

EDIT: While solving this problem I found an error in my code, I have much more then "action" and "sports" categories in my website, I forgot to add more categories to this lines "$action_status = 'unchecked';", but for some reason I didn't got any errors, and everything worked perfectly... strange O.o

12
  • Convert?.. wha? automatically? preg_replace() maybe. Or "search and replace" in your favorite editor. ;-) Commented Feb 18, 2014 at 18:47
  • What's stopping you from just editing the html to make them checkboxes? Commented Feb 18, 2014 at 18:48
  • 1
    Here's a quick method to change them "on-the-fly"as it were. First create a variable called $choices then assign it to, say $choices="checkbox"; then in your type="radio" you could just do type="<?php echo $choices; ?>" and you could change it back to $choices="radio"; anytime afterwards, avoiding to do all the grunt work. All this "from the top of my head". ;-) Commented Feb 18, 2014 at 18:51
  • doesn't a simple <input type="checkbox"> work? Commented Feb 18, 2014 at 18:51
  • 1
    I mean before I wanted to change to checkboxes, I used the radio buttons with only this 2 categories on this "unchecked" variable, and for some reason all the categories added successfully to my database... thats strange XD Commented Feb 18, 2014 at 19:11

3 Answers 3

2

If all you are looking to do is replace your RADIO buttons with CHECKBOXES, just change the HTML to reflect that, like so:

 <input class="radio" type="checkbox" name="game_category[]" value="action"<?php print $action_status; ?>/><span>Action</span><br/>

You will then need to change all the "else if"'s in your PHP to just "if"'s, as you can iterate over multiple values, like so:

if($game_category == 'multiplayer'){
     $multiplayer_status = 'checked';
}
if($game_category == 'new'){
    $new_status = 'checked';
}
Sign up to request clarification or add additional context in comments.

13 Comments

Thanks I will try that, if it will work I will post the full code at the answer :)
I've edited my comment. You'll need to change your "else if"'s at the top in PHP to allow multiple values to be "checked" at once.
This didn't work, I tried this and I got in my database only the last category that I've checked... The problem is that I don't know how to make my website read the same game in multi categories...
Ah, beacuse we must declare game_category as an array, I updated the answer. <input type="checkbox" name="game_category[]" /> - now you will have $_POST['game_category'] as an array, with all values included.
Now, insteed of getting 4 categories that I've picked for the same game, I get in my database under "game_category" this: Array.
|
2

The solution:

I change this line for example from this:

<input class="radio" type="radio" name="game_category" value="3d"<?php print $three_d_status; ?>/><span>3D</span><br>

into this:

<input class="checkbox" type="checkbox" name="game_category[]" value="3d"<?php print $three_d_status; ?>/><span>3D</span><br>

Then, I edited the if statements from this:

if($game_category == '3d'){

 $three_d_status = 'checked';

 }else if($game_category == 'action'){

 $action_status = 'checked';

 }

Into this:

if($game_category == '3d'){

 $three_d_status = 'checked';

 }
 if($game_category == 'action'){

 $action_status = 'checked';

 }

and finally I changed this line from this:

$game_category = $_POST['game_category'];

Into this:

$game_category = implode(",",$_POST['game_category']);

Hope that helped someone out there :)

Credit goes to: "binaryatrocity" and "Fred-ii-" :D

3 Comments

+1 It just gets better ;-) Thanks for the mention, and you're quite welcome, cheers.
:D, np my friend, I'm always glad to help the helpers
I run into a different problem, so I opened a new post for that... You are more then invited to check it out: stackoverflow.com/questions/21864241/… :D
0

If you got only one, maybe the NAME element must be an array :

Checkbox:<input type="checkbox" checked="checked" name="myCheck[]">

1 Comment

"If you got only one, maybe the NAME element must be an array" - You have that backwards.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.