0

こんにちは人々は以下の私のコードを見つけてください。このsciptを実行すると、iamがphp配列値をjs関数に渡そうとしていることがわかります。3つのアラートparameter0 = 1、parameter1 = 2、parameter2=3が異なります...iamが何をしようとしているのかもう1つの関数を渡すことができるように、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>
4

6 に答える 6

1

これを行う

$b = json_encode($a);

アクセス方法については、stackoverflow または Google で JSON を探してください。

于 2012-11-27T17:14:09.877 に答える
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'] );
于 2012-11-27T17:14:00.033 に答える
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];              
 }    
}
于 2012-11-27T17:16:04.800 に答える
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]);
}

引数はすべての関数で使用でき、関数が特定の数の引数で定義されているかどうかに関係なく、その関数に引数として渡されたすべてのデータを含みます。MDN ですべてを読む

argumentsオブジェクトは配列のように見えますが、そうではありません。そのため、スライスするには、プロトタイプapplyからスライス メソッドを使用する必要があります。MDN - 詳細については申請してください。Array

全体として、それが必要なものに到達する最も簡単な方法です。私見
:配列コンストラクターを使用しないでください。配列リテラル表記を使用してください[]。配列コンストラクターは時々少し奇妙な動作をすることがあります

于 2012-11-27T17:28:34.663 に答える
0

あなたのコードが書かれているので、その作業。

カウントが異なります。1 つは 0 から始まり、もう 1 つは 1 から始まります。

for ループの start 変数を 1 に変更してから、temp の i から 1 を引いてみると、次のようになります。

パラメータ1=1、パラメータ2=2、パラメータ3=3

于 2012-11-27T17:14:59.667 に答える
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>
于 2012-11-27T17:18:03.910 に答える