嗨,我真的不太了解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>
任何帮助将非常感谢,提前感谢。
答案 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);