2014-09-24 145 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