嗨,我真的不太了解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);