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


enabling and disabling a button using javascript and php

嗨,我真的不太了解javascript,很抱歉遇到这个业余问题。我试图用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>

任何帮助都将不胜感激,提前表示感谢。

您试图将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,如果他们真的想的话,仍然可以点击按钮。因此,如果你需要阻止用户做一些事情,那么这也需要在服务器端完成,以响应用户不应被授权执行的任何操作。

你可以试试这个

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);