将客户端JavaScript变量传递给服务器端php
我再次尝试提问我的问题。我希望这一次足够清楚。将客户端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 ='« 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 ='« 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 ='« 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 ='« 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 ='« 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 ='« Select Options'" onmouseover="$('Text6').innerHTML ='Get Current %'"/></a></span>
<span id="Text6" style="font-weight:bold">« 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>
我想通过客户端JavaScript百分比服务器端PHP变量。我用GET和POST javascript(隐藏的字段,表单,锚点,onclick事件等)做了数十次尝试,但没有成功。基本上与的onclick =“警报(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});
谢谢你的代码,但我只能得到“未定义”的结果。我已经尝试了2个小时以取得成功。为什么? – user1274113 2012-03-16 20:39:36
由于对何塞的答案的变化(有没有必要使用Ajax.Updater
除非你期待的HTML响应)原型确实提供你所需要的一切。
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']
。我没有设置method
,因为它无论如何都是POST,而parameters
是一个对象,这意味着Prototype会为你编码,这样可以节省工作量。请记住阅读manual。
parseInt
将删除任何%
字符(如果它们存在于百分比中)。 event.stop()
整齐地防止锚的正常点击行为。
简而言之 - >使用隐藏的输入字段创建隐藏表单...将该值分配给该输入的值,然后提交该表单。或者只是使用Ajax。 – Wh1T3h4Ck5 2012-03-16 15:43:31
当然。使用ajax(原型应该有大量关于如何完成你想要的东西的文档)。你想跟踪的进展是什么? – Jason 2012-03-16 15:44:06