-2

Drupal でウェブサイトを構築し、ユーザーポイント システムを構築してメンバーをサイトに参加させる楽しい方法を作成しようとしています。システムはすべて整っていますが、彼らが購入できるショップを作ろうとしています。 「タイトル」。

これは私がショップ用に書いたスクリプトで、少しエラー処理を加えていますが、問題が発生しています。

私のJavaScriptにはbuyitem( )、データベース内のすべてをチェックするPHP関数で使用したい2つの変数を持つ関数があります.外部PHPに行かずに、JavaScriptから私が書いた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

2 に答える 2

4

PHPはサーバー側のスクリプトであり、javascriptはクライアント側です。サーバー側のスクリプトはページが読み込まれる前に実行されます。つまり、javascriptは変数を渡すことができませんが、php変数をjsに渡すことはできます。

あなたの場合の最良の解決策は、ajaxを使用してそれらの変数をphpに送信し、phpに変数を設定させることです。これは問題を完全には解決しませんが、コードにある程度の創造性を持たせることでそれを実現できます。

于 2012-02-05T17:33:51.930 に答える
1

ページをリロードするか(これはあなたが探しているものではないかと思います)、2つの変数を送信するphpスクリプトにajax呼び出しを行うことができます。
jQueryを使用している場合、これにより、これを行う方法がわかります。

于 2012-02-05T17:33:20.713 に答える