2012-02-05 8 views
-2

親愛的計算器成員之間的變量的方式,是有交流的JavaScript和PHP

我有建立在Drupal一個網站,我想創建一個有趣的方式,通過建立一個userpoint讓參與網站成員系統,系統全部到位,但我試圖建立一個商店,在那裏他們可以購買'標題'。

這是我寫的店鋪,帶着幾分的錯誤處理腳本,但我堅持了一個問題,

在我的javascript,我具備的功能buyitem()與2個變量,至極我想用我的PHP函數來檢查我的數據庫中的所有內容,有沒有辦法將這些變量從javascript轉換爲我寫入的php函數而不需要外部PHP文件?

在此先感謝, 喬納森

<?php 
    include "php-scripts/DBConnection.php"; 
    $con = getconnection(); 
    mysql_select_db("brokendi_BD", $con); 


    function getKarma() 
    { 
      $result = mysql_query("SELECT * FROM userpoints WHERE uid='getUID()'"); 
      $row = mysql_fetch_array($result); 
      $currentkarma = (int)$row['points']; 

      return $currentkarma; 
    } 

    function getUID() 
    { 
     global $user; 
     if ($user->uid) 
     { 
       $userID=$user->uid; 
       return $userID; 
     } 
     else 
     { 
       header('Location: http://brokendiamond.org/?q=node/40'); 
     } 
    } 

    function hasRole($roleID) 
    { 
      $usersid = getUID(); 
      $returnValue = false; 
      $result = mysql_query("SELECT * FROM users_roles"); 
      while ($row = mysql_fetch_array($result)) 
      { 
       if ($row['uid'] == $usersid) 
       { 
         if ($row['rid'] == $roleID) 
         { 
           $returnValue = true; 
           break; 
         } 
       } 
      } 
      return $returnValue; 
    } 

    function enoughKarma() 
    { 
      if (getKarma() >= $requiredKarma) 
      { 
        return true; 
      } 
      else 
      { 
        return false; 
      }  
    } 

    function buyRole() 
    { 
      $currentKarma = getKarma(); 
      $newkarma = $currentKarma - $requiredKarma; 
      $userID = getUID(); 
      mysql_query("UPDATE userpoints SET points = '$newkarma' WHERE uid='$userID'"); 
      mysql_query("INSERT INTO users_roles (uid, rid) VALUES ($userID, $roleID)"); 
    } 
    ?> 

    <script type="text/javascript"> 
    buyItem(1 , 0); 
    function SetStore() 
    { 


    } 

    Function buyItem(itemID,reqKarma) 
    { 
      if (<?php enoughKarma(); ?>) 
      { 
       <?php buyRole(); ?> 
      } 
      else 
      { 
       alert('You do not have enough Karma to buy this title.'); 
      } 
    } 
    </script> 

回答

4

PHP的想法是一個服務器端腳本和JavaScript是一種客戶端,服務器端腳本的頁面加載之前執行的,這意味着你的JavaScript無法將變量傳遞給它,但是你可以將php變量傳遞給你的js。

你的情況最好的解決方案是使用ajax將這些變量發送到php,並在它的一側設置php變量,這並不能很好地解決你的問題,但是通過代碼中的一些創造性,你可以使它發生。

+0

感謝;)我會看它;) – Jonathan 2012-02-05 17:45:02

+0

我解決了這個問題有點不同,但你的sollution幫助我對我的方式,感謝;) – Jonathan 2012-02-05 21:09:13

+0

真棒很高興我能得到你指出了正確的方向! – 2012-02-05 21:21:40

1

你可以重新載入頁面(我懷疑就是找你找),或者讓你的PHP腳本Ajax調用發送2個變量。
如果你使用jQuery,this應該給你如何做到這一點

+0

感謝;)我會看它 – Jonathan 2012-02-05 17:45:13