I have been trying to make a custom form located on a separate page in my WordPress website. I ended up making a plugin that generates the form html and should post entered data in wp_usermeta. There are three radio button options, one of which is "other", that once clicked makes a textbox visible for alternative input.
The issue I have is that radio button values are not posted to wp_usermeta, only textbox input is (if entered).
Here is the html snippet for the form:
<form name="forming_the_team" method="POST" action="">
<div id="about">
A. Tell us about the team. <br/>
<input type="radio" name="team" value="club" onclick="otherCheck()" id="club"/>Club<br/>
<input type="radio" name="team" value="class" onclick="otherCheck()" id="class"/>Class<br/>
<input type="radio" name="team" value="other" id="other-radio" onclick="otherCheck()"/>Other</br>
<input type="text" name="team2" id="other-box"/><br/>
</div>
<br/>
<input type="submit" value="Submit"/><br/>
</form>
otherCheck() onclick attribute is a javascript function that makes a text box visible if "other" radio button is checked.
Here is one of the things I tried (among others) to update wp_usermeta:
<?php function handleDB() {
$user_id = get_current_user_id();?>
<script type="text/javascript">
if(document.getElementById('club').checked) {
<?php update_user_meta( $user_id, 'team', $_POST['team']);?>
}
if(document.getElementById('class').checked) {
<?php update_user_meta( $user_id, 'team', $_POST['team']);?>
}
if(document.getElementById('other-radio').checked) {
<?php update_user_meta( $user_id, 'team', $_POST['team2']);?>
}
</script>
<?php
}?>
I call handleDB() from the same page via shortcode:
function shortcodeDB() {
ob_start();
displayHTML();
handleDB();
return ob_get_clean();
}
add_shortcode('form_handle','shortcodeDB');
To summarize, text input gets posted successfully, while radio button values post NULL. What can I do to post radio button values as well.
Thank you in advance.