繁体   English   中英

HTML表单单选按钮设置为默认基于PHP变量进行检查

[英]Html form Radio button set to checked by Default Based on PHP variable

我试图根据PHP变量的结果设置要检查(或不检查)的单选按钮。 我希望在加载页面时完成此操作,以使其需要用户零交互。 我遇到的问题是我似乎无法将单选按钮设置为已检查状态。

以下是一些额外的信息

单选按钮有2个。 成员和非成员。 根据用户注册时选择的内容,我的PHP变量将包含Member或non-Member。 这是我要用来确定在加载页面时应检查哪个单选按钮的数据。 (AKA是变量=成员,已选中成员单选按钮= true。等等。)

注意:我已经测试了PHP变量,它保存了正确的数据。

这是我的html表单的代码:

<form name="registration" action="accountSF.php" method="post">
            <div id="leftSideForm"> <!--  Left side of the Registration Form -->

                Are you a member of an attending clubs? <br /> 
                <input type="radio" name="clubMember" id="member" value="Member" onload="return isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false;  return validateClubInfo();" />Club Member
                <input type="radio" name="clubMember" id="nonMember" value="Non-Member"  onload="return isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false; return validateClubInfo();"/>Non Member<br /> <br />       

           <button type="submit" onclick="" style="width:100px;" >Save Changes</button> 
           </div> <!-- end of Left sideform -->

</form>

这是我的JavaScript函数(包含在表单下方):

<script type="text/javascript">

function isClubMember()
{
var IsMember = "<?php echo $U_Club_Member; ?>";

if(IsMember == "Member")
{
    document.getElementById("member").checked = true;
    document.getElementById("nonMember").checked = false;
    return true;
}
else if(IsMember == "Non-Member")
{
    document.getElementById("member").checked = false;
    document.getElementById("nonMember").checked = true;
    return true;
}
else
{
    return false;
}
}

在这方面的任何帮助将不胜感激。

如果可以将PHP变量传递到窗体的视图中,则可以简化代码。 代替:

<input type="radio" name="clubMember" id="member" value="Member" onload="return isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false;  return validateClubInfo();" />Club Member

...加上大量的Javascript,只需执行以下操作:

<input type="radio" name="clubMember" id="member" value="Member" <?= $U_Club_Member == "Member" ? 'checked' : '' ?> ... /> Club Member

您还应该考虑简化Js。 直接在HTML中拥有一堆onclick / onMouseDown事件不是很容易阅读或编辑的!

相反,如果您使用的是jQuery,则可以使用以下事件:

$('#member').on('click', function() { ... });
$('#member').on('mousedown', function() { ... });

您可以使用php进行复选框的自动检查和不检查

<input type = "checkbox" <?php if($isMember == 'Member') { echo "checked; "} ?>>

只需在input添加checked的属性,您可能要在这里参考

onload和代码中的if除去return (您不必这样做,但没有必要):

<form name="registration" action="accountSF.php" method="post">
            <div id="leftSideForm"> <!--  Left side of the Registration Form -->

                Are you a member of an attending clubs? <br /> 
                <input type="radio" name="clubMember" id="member" value="Member" onload="isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false;  return validateClubInfo();" />Club Member
                <input type="radio" name="clubMember" id="nonMember" value="Non-Member"  onload="isClubMember();" onMouseDown="this._chckd = this.checked" onclick="if (this._chckd) this.checked = false; return validateClubInfo();"/>Non Member<br /> <br />       

           <button type="submit" onclick="" style="width:100px;" >Save Changes</button> 
           </div> <!-- end of Left sideform -->

</form>

将是您的新HTML。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM