Php 单选按钮-从Db读取预选值

Php 单选按钮-从Db读取预选值,php,jquery,mysql,radio-button,Php,Jquery,Mysql,Radio Button,我有一个单选按钮,它从mysql读取值并成功地突出显示正确的单选按钮。 我还进行了jquery验证,当单选按钮处于“否”值时,两个下拉菜单将灰显 我的问题在于,当用户选择“否”单选按钮时,它会将其保存到mysql,但当他/她重新登录时,单选按钮会正确地处于“否”位置,但是这两个下拉菜单并没有像应该的那样变灰。如果我单击“否”单选按钮,它们将变灰 我显然不希望这样,如果用户选择“否”,然后重新登录,我希望在登录时下拉菜单变灰 php代码: <?php $row2 = "SELECT * FR

我有一个单选按钮,它从mysql读取值并成功地突出显示正确的单选按钮。 我还进行了jquery验证,当单选按钮处于“否”值时,两个下拉菜单将灰显

我的问题在于,当用户选择“否”单选按钮时,它会将其保存到mysql,但当他/她重新登录时,单选按钮会正确地处于“否”位置,但是这两个下拉菜单并没有像应该的那样变灰。如果我单击“否”单选按钮,它们将变灰

我显然不希望这样,如果用户选择“否”,然后重新登录,我希望在登录时下拉菜单变灰

php代码:

<?php
$row2 = "SELECT * FROM user WHERE username = '" . mysql_real_escape_string($_SESSION['username']) . "'";
$result = mysql_query($row2) or die("Error in SQL: " . mysql_error());
$row3 = mysql_fetch_array($result);

?>
单选按钮代码:

       <input name="attendance1" type="radio" id="Yes" value="Yes" <?php if($row3['attendance1']=="Yes") { echo "checked"; }?>/>Yes 
                 <br />
         <input name="attendance1" type="radio" id="No" value="No" <?php if($row3['attendance1']=="No") { echo "checked"; }?>/>No

I would be greatful if someone could tell me where i am going wrong. When retrieving the value from the database it is obviously not physically selecting the radio button which i would like it to do

JQUERY VALIDATION:

          <script src="jquery.js"></script>
         <script>      
            $( function(){    
                    function validate(id){       
                        var enabled = ($("input[name='attendance" + id + "']:checked").val() == 'Yes');         
                        if(enabled){              
                            //Please select option is selected              
                            if($("#colour" + id)[0].selectedIndex == 0){                 
                            alert('Please make your colour selection');                  
                            return false;             
                            }              
                            //Please select option is selected              
                            if($("#shade" + id)[0].selectedIndex == 0){                  
                                alert('Please select your shade');                  
                                return false;             
                            } 


                        }     
                        return true;    
                    };

                    $("input[name^='attendance']").click(function() {  

                        var id = this.name.replace('attendance', '');      
                        $("#colour" + id + ", #shade" + id).prop("disabled", this.value == 'No');         
                        validate(id);    
                    });      
                   $("input:submit").click(function(){         
                       var retVal = true;
                       $.each([1], function(i, val){
                          retVal = (validate(val) && retVal);
                       });
                        return retVal;   

$(document).ready(function(){    

$("input[name=attendance1]:checked").triggerHandler('click'); 
});     
</script>

有两个下拉菜单称为“颜色和阴影”,当页面加载时,jQuery会触发onclick处理程序:

$(document).ready(function(){
   $("input[name=attendance]:checked").triggerHandler('click');
});
因此,您的总代码将如下所示:

<script src="jquery.js"></script>
<script>      
$( function(){    
    function validate(id){       
        var enabled = ($("input[name='attendance" + id + "']:checked").val() == 'Yes');         
        if(enabled){              
            //Please select option is selected              
            if($("#colour" + id)[0].selectedIndex == 0){                 
            alert('Please make your colour selection');                  
            return false;             
            }              
            //Please select option is selected              
            if($("#shade" + id)[0].selectedIndex == 0){                  
                alert('Please select your shade');                  
                return false;             
            } 


        }     
        return true;    
    };

    $("input[name^='attendance']").click(function() {  

        var id = this.name.replace('attendance', '');      
        $("#colour" + id + ", #shade" + id).prop("disabled", this.value == 'No');         
        validate(id);    
    });      
   $("input:submit").click(function(){         
       var retVal = true;
       $.each([1], function(i, val){
          retVal = (validate(val) && retVal);
       });
        return retVal;  
   });
});

$(document).ready(function(){    
    $("input[name=attendance]:checked").triggerHandler('click'); 
});     

</script>

你需要在你的头脑中添加一些类似的东西,这样当页面加载时它就会自动被禁用。我相信您可以为id找到一个合适的值


您可以禁用PHP中的下拉列表,但这不是一个好主意,因为禁用JavaScript会让人上当。

您是禁用PHP中的下拉列表还是仅在JavaScript中禁用下拉列表?您需要显示更多代码。我使用jquery。已使用jquery的源代码进行编辑。我认为问题不在于jquery,因为如果我实际选择“否”,它就会工作。但是,当从mysql导入“否”时,直到我自己单击“否”时,它才起作用。我以前尝试过这个方法,但由于某些原因它不起作用:你在代码中放了这个吗?您确定要在“单击”功能绑定后添加它吗?抱歉,不知道接受情况,这是新的。我已经编辑了上面的jquery以显示我的位置,谢谢您不应该重新包含。。。这只需要添加一次,所以我稍微修改了代码。删除包含的重复库并使用新代码。
<script>
$(document).ready(function () {
  $("#colour" + id + ", #shade" + id).prop("disabled", this.value == 'No');
});
</script>