Radio Input throwing Undefined Index

Hi,

I have a form that submits values from the following radio button:

<td height="185" align="left" valign="top">
<p><font face="Tahoma" size="2">How many people (on average) will be watching this presentation? <br>
<input type="radio" name="Watching" value="Less than 5">
Less than 5 <br>
<input type="radio" name="Watching" value="6 to 15">
6 to 15<br>
</font><font face="Tahoma" size="2">
<input type="radio" name="Watching" value="16 to 30">
16 to 30 <br>
<input type="radio" name="Watching" value="31 to 100">
31 to 100 <br>
<input type="radio" name="Watching" value="101 to 500">
101 to 500 <br>
<input type="radio" name="Watching" value="More than 500">
More than 500</font></p></td>

I then submit the code to another page where I attempt to verify it:

function cleantext($text)
{
      if( isset( $text )){
            return $text;
      } else {
            $r = "";
            return $r;
      }
}

//Submission conversion
$Watching = cleantext($_POST["Watching"]);


But i get the error:

Notice: Undefined index: Watching in C:\Sites\Single27\bsowards\webroot\presteam\Services\Packaged\3 Templates\formsubmit.php on line 49


I'm using PHP 5 on Windows Server 2003, can anyone tell me how to check if a Radio submitted value is valid? is it because it is an array? Sample code would be much appreciated thanks!

bsowardsAsked:
Who is Participating?
 
RoonaanConnect With a Mentor Commented:
No, your function isn't. You cannot pass a non-existing variable and then test if it is set.

So you would use:
$Watching = isset($_POST['Watching']) ? $_POST['Watching'] : '';

Or
$Watching = cleantext($_POST, $Watching)
And use:
function cleantext($array, $key) {
  if(isset($array[$key])) {
  return $array[$key];
  } else { return '';}
}

-r-
}

0
 
RoonaanCommented:
You can use below code, to debug your request variables:
echo '<pre>'.var_export($_POST,true).'</pre>';

-r-
0
 
bsowardsAuthor Commented:
your debug did not provide any information or did not work. I'm still getting the error with no additional information.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
bsowardsAuthor Commented:
whoops! put at end of code so didn't get to it.

It's showing that the value "Watching" isn't even included in the index, which is what I assumed from the error. So how come my detection script isn't handling that?
0
 
RoonaanCommented:
Are the radio buttons between your <form> and </form> tags?

-r-
0
 
Richard QuadlingSenior Software DeveloperCommented:
Change $_POST to $_GET.

This should match the form's action (POST or GET).

Can you show the complete form you are using?

0
 
bsowardsAuthor Commented:
I don't want to use $_GET, I prefer $_POST.

The form works fine when one of the radio buttons are selected, but doesn't if one isn't. Most sites recommend setting one radio button to the default by putting "checked" on one of the options.

I'd prefer to know how to check if a variable is IN the index, that way I don't have to worry about it. Thanks.
0
 
RoonaanCommented:
if(isset($_POST['Watching']))

-r-
0
 
bsowardsAuthor Commented:
Yes well, my function is set to do that, but it doesn't work.

function cleantext($text)
{
     if( isset( $text )){
          return $text;
     } else {
          $r = "";
          return $r;
     }
}

//Submission conversion
$Watching = cleantext($_POST["Watching"]);
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.

All Courses

From novice to tech pro — start learning today.