你好人们请在下面找到我的代码,因为你可以看到iam试图将php数组值传递给js函数如果我运行这个scipt我得到3个警报参数0 = 1,参数1 = 2和参数2 = 3不同...什么是iam试图做的是我需要保存参数0,参数1和参数3,以便我可以再传递一个函数....请帮我做这个......
<script type="text/javascript">
function mufunc(a)
{
var temp = new Array();
dump(temp);
temp = a.split('~');
var parameter;
for(i=0;i<temp.length;i++)
{
alert('parameter'+i+'='+temp[i]);
}
//alert('sri'+i+'='+temp[i]);
}
</script>
<?php
$a = array('1','2','3');
$b = implode("~",$a);
?>
<a href="javascript:void(0)" onClick="mufunc('<?php echo $b; ?>')">Click Here</a>
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以在全局范围内声明temp
,以便以后可以在任何范围内使用它:
var temp = new Array();
function mufunc(a)
{
dump(temp);
temp = a.split('~');
var parameter;
for(i=0;i<temp.length;i++)
{
alert('parameter'+i+'='+temp[i]);
}
//alert('sri'+i+'='+temp[i]);
}
可替换地:
var params = new Array();
function mufunc(a)
{
var temp= new Array();
dump(temp);
temp = a.split('~');
var parameter;
for(i=0;i<temp.length;i++)
{
alert('parameter'+i+'='+temp[i]);
params['parameter'+i] = temp[i];
}
}
现在您可以像访问它一样访问它:
alert( params['parameter0'] );
alert( params['parameter1'] );
答案 2 :(得分:0)
它的代码正在写入。
您的计数不同,一个从0开始,一个从1开始:
尝试将for循环中的起始变量更改为1,然后将temp中的i减去1,您应该得到:
parameter1 = 1,parameter2 = 2且parameter3 = 3
答案 3 :(得分:0)
只需使用全局数组变量,并为其指定参数。
var parameter = [];
function mufunc(a)
{
var temp = new Array();
dump(temp);
temp = a.split('~');
for(i=0;i<temp.length;i++)
{
alert('parameter'+i+'='+temp[i]);
parameter[i] = temp[i];
}
}
答案 4 :(得分:0)
利用PHP的json_encode功能。
<script type="text/javascript">
function mufunc(a)
{
// removed "var" to make "temp" global.
// and we don't have to parse anything, the JS engine did
// it for us already!
temp = new Array();
for(var i=0; i < temp.length; i++)
{
alert(i + ": " temp[i]);
}
}
</script>
<?php
$a = array('1','2','3');
$object_string = json_ecode($a);
?>
<a href="javascript:void(0)" onClick="mufunc(<?php print $object_string; ?>)">Click Here</a>
答案 5 :(得分:0)
由于我的评论可以被视为答案,我将(重新)在此发布:
在你的php脚本中,只需传递如下参数:
onclick="<?php echo implode(',',$b);?>">
//or if the you're dealing with strings:
onclick="<?php echo '"'.implode('","',$b).'"';?>">
然后在myfunc
function myfunc()
{
var parameters = Array.prototype.slice.apply(arguments,[0]);
}
所有函数都提供了参数,并且包含作为参数传递给该函数的所有数据,函数的天气是否定义了一定数量的参数。 Read all about it on MDN
arguments
对象看起来像一样,但不是一个,这就是为什么要切片 - 你需要apply
来自{{1}的切片方法1}}原型。 MDN - Apply了解更多信息。
总而言之,这是获得所需内容的最快方式,恕我直言 BTW:不要使用数组构造函数,请使用数组文字表示法:Array
。数组构造函数可能会不时出现一些奇怪的行为