Insert Value of one checkbox into MySQL

Simple and easy for you guys and gals I'm sure.

I have a form. I have a checkbox that if it is checked a hidden <div> is displayed with additional form fields. If the user unchecks it, the <div> hides and the form fields are not accessible.

When I fill in the form and leave the checkbox unchecked, it gives me the error, "
Notice: Undefined index: location_have_address in C:\wamp\www\sha2\members\add_game.php on line 57".

I believe this is because the checkbox doesn't have a value when writing to the DB since it was not checked.

In my DB, I am storing the value of the checkbox as 0 or 1. The datatype in the DB is TINYINT.

This checkbox is not required and if left unchecked, needs to write '0' in the DB. I would rather not use a radio button as the user would have to refresh the page should they click on it by accident.

How can I accomplish this?

The form input code for this is below with the hidden div below it.

BUT the error occurs while setting the POST variables after checking if(isset($_POST['submit'])) {.....}

Any ideas?

iShiva
FORM FIELD CODE          
 
<input name="location_have_address" id="location_have_address" type="checkbox" value="1" onclick="$(this).is(':checked') && $('#checked').slideDown('slow') || $('#checked').slideUp('slow');" /> Check to enter ACTUAL address for your event (this will activate the new 'Get Directions' feature for our visitors. 
          
          <div id="checked" style="display: none; background-color: #f5f5f5;" >
          
          Street Number: <input type="text" name="location_street_number" id="location_street_number" size="10" />
          Street Name: <input type="text" name="location_street_name" id="location_street_name" size="30" />
          City: <input type="text" name="location_city" id="location_city" size="20" />
          State: <input type="text" name="location_state" id="location_state" size="5" />
          Zipcode: <input type="text" name="location_zipcode" id="location_zipcode" size="5" />
           </div>
 
SET VARIABLES CODE
 
	if(isset($_POST['submit'])) {
 
 
     // We are here, means that form was submitted
    $sport_id = $_SESSION['SESS_SPORT_ID'];
    $sport_name = $_SESSION['SESS_SPORT_NAME'];
    $level = mysql_real_escape_string($_POST['level']);
    $gamedate = mysql_real_escape_string($_POST['gamedate']);
    $opponent = mysql_real_escape_string($_POST['opponent']);
    $league_game = mysql_real_escape_string($_POST['league_game']);
    $location = mysql_real_escape_string($_POST['location']);
    $location_name = mysql_real_escape_string($_POST['location_name']);
    $location_have_address = mysql_real_escape_string($_POST['location_have_address']);
    $location_street_number = mysql_real_escape_string($_POST['location_street_number']);
    $location_street_name = mysql_real_escape_string($_POST['location_street_name']);
    $location_city = mysql_real_escape_string($_POST['location_city']);
    $location_state = mysql_real_escape_string($_POST['location_state']);
    $location_zipcode = mysql_real_escape_string($_POST['location_zipcode']);
    $gametime = mysql_real_escape_string($_POST['gametime']);
    $ampm = mysql_real_escape_string($_POST['ampm']);
    $processed = mysql_real_escape_string($_POST['processed']);

Open in new window

IShivaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

IShivaAuthor Commented:
Also, the php error I am getting says its on line 57. That line in my posted code above is line 28. (location_have_address)
0
yauhingCommented:
You can use the function isset() to check the value is exists or not. If 'location_have_address' not exists in $_POST, just use '0' instead.
$location_have_address = mysql_real_escape_string(isset($_POST['location_have_address']) ? $_POST['location_have_address'] : '0');

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
yauhingCommented:
Are you missing "}" at the end of your code? or can you post the error message?
 if(isset($_POST['submit'])) {

Open in new window

0
IShivaAuthor Commented:
Hi yauhing

Just tested your code out and it works perfectly! Both states (checked with additional fields and not checked) write to the DB without error now.

Was it not working because the value of that variable was not set yet?

Thanks so much :)

iShiva
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.