2012-11-27 102 views
0

你好人們請在下面找到我的代碼,你可以看到iam試圖傳遞php數組值到js函數,如果我運行這個scipt我得到3個警報parameter0 = 1,parameter1 = 2和參數2 = 3不同...我試圖做的是我需要保存parameter0,parameter1和parameter3,以便我可以通過它一個更多的功能....請幫我做到這一點.....將數組值傳遞給javascript函數並將其存儲在變量中

<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

爲什麼會爆裂出一個古怪的分隔符?只需做這個'<?php echo implode(',',$ b);',並且在你的JS函數中:'var parameters = Array.prototype.slice.apply(arguments,[0]);'和參數將會是一個數組,看起來像這樣:'[1,2,3]'。完成任務 –

回答

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']); 
+0

感謝您的回覆serverbloke,但它不工作... var temp = new Array(); function mufunc(a) { dump(temp); temp = a.split('〜'); var parameter; (i = 0; i

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

參數在所有函數中都可用,並且包含al l作爲參數傳遞給該函數的數據,天氣該函數被定義爲具有一定數量的參數或不具有。 Read all about it on MDN

arguments對象看起來像一個數組,而不是一個,這就是爲什麼-to切片它 - 你需要applyArray原型切片方法。 MDN - Apply欲瞭解更多信息。

總而言之,這是去你所需要的最快捷的方式,恕我直言
BTW:不要使用數組構造,使用數組文字符號:[]。數組的構造函數可能會不時有點奇怪

相關問題