繁体   English   中英

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

[英]enabling and disabling a button using javascript and 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>

任何帮助将不胜感激,在此先感谢。

您正在尝试混合使用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);

暂无
暂无

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

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