Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将客户端javascript变量传递给服务器端php_Php_Javascript_Prototypejs - Fatal编程技术网

将客户端javascript变量传递给服务器端php

将客户端javascript变量传递给服务器端php,php,javascript,prototypejs,Php,Javascript,Prototypejs,我再次尝试问我的问题。我希望这一次足够清楚 以下是我的脚本的现场演示: 这是代码: <? // I set the starting percentage to 0%. $something = 0; ?> <!-- jsProgressBarHandler prerequisites : prototype.js --> <script type="text/javascript" src="js/prototype/prototype.js"&

我再次尝试问我的问题。我希望这一次足够清楚

以下是我的脚本的现场演示:

这是代码:

<? // 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>

多色条
加载。。。 &拉阔;选择选项 document.observe('dom:loaded',function()){ manualPB2=新的JS_BRAMUS.jsProgressBar( $('element6'), , { barImage:阵列( “images/bramus/percentImage_back4.png”, “images/bramus/percentImage_back3.png”, “images/bramus/percentImage_back2.png”, “images/bramus/percentImage_back1.png” ), onTick:函数(pbObj){ 开关(pbObj.getPercentage()){ 案例70: 警惕(‘我们处于70%’); 打破 案例100: 警惕(“我们是100%”); 打破 } 返回true; } } ); },假);

我想将客户端javascript百分比传递给服务器端php变量。我用GET和POST javascript(隐藏字段、表单、锚、onclick事件等)做了几十次尝试,但都没有成功。基本上,我使用onclick=“alert(manualPB2.getPercentage());函数在警报中标记当前百分比。是否可以编辑此警报,以便将变量发布/获取到php?

而不是警报,尝试此ajax调用

 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});

作为jose答案的一个变体(除非您希望得到HTML响应,否则无需使用
Ajax.Updater
),Prototype确实提供了您所需的一切

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();
    });
});
…在脚本中,值将是
$\u POST['percentage']
。我没有设置
方法,因为它无论如何都将是POST,而且
参数是一个对象,这意味着原型将为您对其进行URL编码,因此节省了工作量。请记住阅读


parseInt
将删除百分比中存在的任何
%
字符。巧妙地防止锚的正常点击行为。

简而言之->使用隐藏输入字段创建隐藏表单…将此值指定给该输入的值,然后提交该表单。或者只使用Ajax。确定。使用Ajax(prototype应该有足够的文档,说明如何从一开始就实现您想要的目标)。您想跟踪的进度是什么?谢谢您的代码,但我只能得到“未定义”的结果。我已经尝试了2个小时,但没有成功。为什么?