簡體   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