2012-03-16 13 views
0

私は再度質問をします。今回は十分にクリアなことを願っています。クライアント側のjavascript変数をサーバー側のPHPに渡します

は、ここに私のスクリプトのライブデモです: http://www.virusgaming.net/test/

そして、これはコードです:

<? // I set the starting percentage to 0%. 
$something = 0; ?>  

<!-- jsProgressBarHandler prerequisites : prototype.js --> 
<script type="text/javascript" src="js/prototype/prototype.js"></script> 

<!-- jsProgressBarHandler core --> 
<script type="text/javascript" src="js/bramus/jsProgressBarHandler.js"></script>   

<span style="color:#006600;font-weight:bold;">Multi Color Bar</span> <br/> 
<span id="element6">Loading...</span> 
<span class="extra"><a href="#" onclick="manualPB2.setPercentage('0', true);return false;"><img src="images/icons/empty.gif" alt="" title="" onmouseout="$('Text6').innerHTML ='&laquo; Select Options'" onmouseover="$('Text6').innerHTML ='Empty Bar'"/></a></span> 
<span class="options"><a href="#" onclick="manualPB2.setPercentage('+10');return false;"><img src="images/icons/add.gif" alt="" title="" onmouseout="$('Text6').innerHTML ='&laquo; Select Options'" onmouseover="$('Text6').innerHTML ='Add 10%'"/></a></span> 
<span class="options"><a href="#" onclick="manualPB2.setPercentage('-5');return false;"><img src="images/icons/minus.gif" alt="" title="" onmouseout="$('Text6').innerHTML ='&laquo; Select Options'" onmouseover="$('Text6').innerHTML ='Minus 5%'" /></a></span> 
<span class="options"><a href="#" onclick="manualPB2.setPercentage('30');return false;"><img src="images/icons/set.gif" alt="" title="" onmouseout="$('Text6').innerHTML ='&laquo; Select Options'" onmouseover="$('Text6').innerHTML ='Set 30%'"/></a></span> 
<span class="options"><a href="#" onclick="manualPB2.setPercentage('98'); manualPB2.setPercentage('30'); return false;"><img src="images/icons/fill.gif" alt="" title="" onmouseout="$('Text6').innerHTML ='&laquo; Select Options'" onmouseover="$('Text6').innerHTML ='Fill 98%, and then 30%'" /></a></span> 
<span class="getOption"><a href="#" onclick="alert(manualPB2.getPercentage());return false;"><img src="images/icons/get.gif" alt="" title="" onmouseout="$('Text6').innerHTML ='&laquo; Select Options'" onmouseover="$('Text6').innerHTML ='Get Current %'"/></a></span> 
<span id="Text6" style="font-weight:bold">&laquo; Select Options</span> 

<script type="text/javascript">      
    document.observe('dom:loaded', function() { 

     manualPB2 = new JS_BRAMUS.jsProgressBar(
        $('element6'), 
        <? echo $something; ?>,        
        { 

         barImage : Array(
          'images/bramus/percentImage_back4.png', 
          'images/bramus/percentImage_back3.png', 
          'images/bramus/percentImage_back2.png', 
          'images/bramus/percentImage_back1.png' 
         ), 

         onTick : function(pbObj) { 

          switch(pbObj.getPercentage()) { 

           case 70: 
            alert('we are at 70%'); 
           break; 

           case 100: 
            alert('we are at 100%');           
           break;                                            

          } 

          return true; 
         } 
        } 
       ); 
    }, false); 
</script> 

私は、サーバー側のPHP変数にクライアント側のJavaScriptの割合を渡したいです。私は成功とGETとPOSTのJavaScript(隠しフィールド、フォーム、アンカー、onclickイベントなど)で数十回試してみました。基本的にはのonclick = "警告(manualPB2.getPercentage())で、iは、アラートの現在の割合をスタンプ機能は、それがポスト/変数をPHPに得るように、この警告の可能な編集です

+0

簡潔に言うと、非表示の入力フィールドを持つ非表示フォームを作成します。この値をその入力値に割り当てて、そのフォームを送信します。またはAjaxを使用してください。 – Wh1T3h4Ck5

+0

ajaxを使用してください(プロトタイプには、それから始める場合に、必要なものを達成するための方法に関する豊富なドキュメントが必要です)。あなたは何の進捗状況を追跡しようとしていますか? – Jason

答えて

0

の代わりに。?警告、プロトタイプは本当にあなたが必要なすべてを提供しています(HTMLレスポンスを期待している場合を除きAjax.Updaterを使用する必要はありません)ホセの答えのバリエーションとして

var url = 'YourServerSideScript.php'; 
var pars = 'percentage=' + pbObj.getPercentage(); // you have to use $_POST['percentage'] on your script 
var target = 'targeDivId'; 
var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars}); 
+1

ありがとうコードですが、結果として「未定義」しか得られません。私は2時間トライして成功を収めていません。どうして? – user1274113

0

、このAJAX呼び出しを試してみてください。

document.observe('dom:loaded', function() { 
    // after existing initialising code... 

    $$('.getOption a').first().observe('click', function(event) { 
     new Ajax.Request('YourServerSideScript.php', { 
      parameters: { 
       percentage: parseInt(manualPB2.getPercentage()) 
      } 
     }); 
     event.stop(); 
    }); 
}); 

...そしてあなたのスクリプトの値は$_POST['percentage']になります。とにかくPOSTになるので私はmethodを設定しませんでした。parametersは、Prototypeがあなたのためにそれをurlencodeして、作業を保存することを意味するオブジェクトです。 manualを必ずお読みください。

parseIntは、パーセントで存在する場合はいずれも%文字を削除します。 event.stop()は、アンカーの通常のクリック動作をきれいに防止します。

関連する問題