2012-11-27 7 views
0

안녕하세요 사람들은 아래 코드에서 PHP 코드 배열 값을 js 함수에 전달하려고합니다.이 scipt를 실행하면 매개 변수가 3 개 = parameter1 = 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> 
+0

왜 엉뚱한 구분 기호로 함몰 되는가? JS 함수에서'var parameters = Array.prototype.slice.apply (arguments, [0]);'와 같은 매개 변수를 사용하면 매개 변수는 다음과 같이됩니다.

답변

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

:

alert(params['parameter0']); 
alert(params['parameter1']); 
+0

회신 serverbloke 주셔서 감사하지만 그 작동하지 ... var temp = new Array(); 함수 mufunc (a) { dump (temp); temp = a.split ('~'); var 매개 변수;for (i = 0; i

지금 당신은 그것을 좋아 액세스 할 수 있습니다.

0

코드로 작동합니다.

귀하의 카운트 하나는 0에서 시작, 다른 하나는 1에서 시작 :

, 당신은 가야 온도에서 내가 오프 한 다음 마이너스 1에 for 루프에서 시작 변수를 변경해보십시오 :

매개 변수 1 = 1, 매개 변수 2 = 2 및 매개 변수 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];    
}  
} 
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> 
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 객체 는 당신이 Array 프로토 타입에서 슬라이스 방법을 apply 할 필요가 - 그것을 왜 -to 조각의 배열처럼을 보이지만 아니다. 자세한 내용은 MDN - Apply을 참조하십시오.

모두가 가장 필요한 방법입니다. IMHO
BTW : 배열 리터럴 표기법 : []을 사용하십시오.배열 생성자가 때때로 약간 이상하게 동작 할 수 있습니다.

관련 문제