使用javascript和php启用和禁用按钮

时间:2014-09-24 13:09:14

标签: javascript php

嗨,我真的不太了解javascript,很抱歉这个amatuer问题。 即时尝试使用带有2组问题的PHP进行测验页面。我想禁用其他测验的第二个按钮,只有在用户通过第一个测验时才启用。

这就是我想要发生的事情:

<?php

require 'config.php';
$name = "kevin";
$result =mysql_query("select score from members where Username = '$name' " );

?>

<input name="button1" type="button" value="1" />
<input name="button2" type="button" value="2" disabled="disabled" />
<script type="text/javascript">

  if<?php $score is greater than  5 ?>{
         $('#button2').removeAttr('disabled');
    }
    else {
        $('#button2').attr("disabled","disabled");   

    }
});
</script>

任何帮助将非常感谢,提前感谢。

2 个答案:

答案 0 :(得分:1)

您尝试混合PHP和JavaScript,但您无法做到这一点。它们在完全不同的时间运行在完全不同的机器上。

由于在将页面发送到客户端之前,得分在服务器端(在PHP中)是已知的,因此在PHP代码中进行条件化并仅向客户端发出所需的标记。像这样:

<?php

require 'config.php';
$name = "kevin";
$result =mysql_query("select score from members where Username = '$name' " );

?>

<input name="button1" type="button" value="1" />
<?php
    // use a real conditional, I'm just duplicating you for simplicity
    if ($score is greater than  5) {
?>
    <input name="button2" type="button" value="2" />
<?php
    } else {
?>
    <input name="button2" type="button" value="2" disabled="disabled" />
<?php
    }
?>

在这种情况下根本不需要JavaScript,因为逻辑是服务器端的。

现在,您仍然可以使用JavaScript进行更多客户端交互。此外,请注意,这并不是任何防止用户点击按钮的安全措施。任何用户都可以修改发送给他们的HTML / JavaScript,如果他们真的想要,仍然可以点击按钮。因此,如果您需要阻止用户做某事,那么也需要在服务器端完成,以响应用户不应被授权执行的任何操作。

答案 1 :(得分:0)

您可以尝试这样

if($score > 5){
?>
    <script>
    $(document).ready(function(){
        $('#button2').removeAttr('disabled');
    });
    </script>
<?
}else{
?>
    <script>
    $(document).ready(function(){
        $('#button2').attr('disabled');
    });
    </script>
<?
}

或者如果removeAttr / attr无效,那么你可以这样做

$('#button2').prop('disabled', false);
$('#button2').prop('disabled', true);