[英]Passing array values to javascript function and storing it in an variable
嗨,人們好,請在下面找到我的代碼,因為如果我運行此scipt,您會看到iam試圖將php數組值傳遞給js函數,我會收到3條警報,分別是parameter0 = 1,parameter1 = 2和parameter2 = 3 ... iam試圖做什么我是否需要保存parameter0,parameter1和parameter3,以便我可以再傳遞一個函數。...請幫助我做到這一點.....
<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>
您可以在全局范圍內聲明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開始,一個從1開始:
嘗試將for循環中的start變量更改為1,然后在temp中將i減去1,您應該得到:
參數1 = 1,參數2 = 2和參數3 = 3
只需使用全局數組變量,然后為其分配參數。
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];
}
}
在這一點上利用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>
由於我的評論可以被視為答案,因此我將其張貼在這里:
在您的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]);
}
參數在所有函數中均可用,並且包含作為參數傳遞給該函數的所有數據,無論該函數是否使用一定數量的參數定義。 閱讀有關MDN的所有信息
arguments
對象看起來像一個數組,但不是一個數組,這就是為什么要對其進行切片,您需要apply
Array
原型中的slice方法。 MDN-申請更多信息。
總而言之,恕我直言,這是滿足您需求的最快方法
順便說一句:不要使用數組構造函數,請使用數組文字符號: []
。 數組構造函數的行為有時可能會有些奇怪
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.