2014-09-24 150 views
0

嗨,我真的不知道很多关于JavaScript,所以很抱歉这个问题。 即时通讯尝试使用PHP与2套问题作出测验页。我想为其他测验禁用第二个按钮,并且只有在用户通过第一个测验时才能启用。启用和禁用使用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> 

任何帮助将非常感激,在此先感谢。

+0

你真的远离正确的结果。首先阅读关于AJAX并将php中的params传递给javascript的方式。 – Robert 2014-09-24 13:13:56

+0

你包含jQuery吗?即使你有,你的声明也需要在'$(document).ready'声明中。 – 2014-09-24 13:14:51

+0

谢谢你生病检查一下, – rayah 2014-09-24 13:15:42

回答

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

好吧生病请马上试试,谢谢大家。 – rayah 2014-09-24 13:24:04

+0

我试过了,但它不工作先生。该按钮仍然启用 – rayah 2014-09-24 14:05:27

+0

你有没有试过.prop的东西? – 2014-09-24 14:43:45

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

+0

非常感谢谢谢您,真的很感谢,这是我第一次制作网页所以我真的很困惑,但我真的很想完成这个比你更好的帮助。 – rayah 2014-09-24 13:23:13

+0

@rayah:很高兴我能帮上忙。说实话,如果你能理解服务器端代码和客户端代码之间的硬性分离以及两者之间的交流(而这个问题/答案是朝着这个目标迈出的一步),那么你将对网络形成很好的状态开发,而不管使用的任何语言或框架的细节如何。 – David 2014-09-24 13:24:59

+0

是的,我在阅读你的评论后马上搜索了他们的差异,谢谢你的指点。 – rayah 2014-09-24 13:30:19