2011-08-04 7 views
0

この問題は私が思ったほど単純ではないので、変数名をreportと変数numClicksの実際の値の混合として定義しようとしています。JavaScript内で連結された変数名

報、第2報、report3、report4、等...

<? 

<script> 
var numClicks = 0 
</script> 

echo "<img height =\"16\" src = \"images/stapler.png\" 

     onclick=\" 
     numClicks++; 
     var report+numClicks = '".$reports[$i]."'; 
     return confirm(report+numClicks); 

    \"> 
" 
?> 

それが宣言し、JavaScriptでこのような変数を定義し、またはそれらは、ページがロードされる前に事前に定義する必要が行うことは可能ですか?


$reports[$i]は、値がレポートの名前である変数です。

私がしたいのは、ユーザーがいくつかのレポートをまとめてバッチし、その情報をMySQLに送信できるようにすることです。

+1

ありますJSで動的変数名を実行する方法はありますが、ここで必要なのはそうではないと思います。なぜ配列を使用しないのですか? – stefan

+0

一重引用符と二重引用符を正しく使用する方法を学ぶと、PHPコードの可読性に大きく役立ちます。 – Endophage

+0

このようにHTMLを 'echo'すると、読み書きが難しくなります。 '$ reports [$ i]'だけをエコーするだけです。 –

答えて

1

このようにすることはできません。おそらく、あなたが実際に達成しようとしていることをもっと私たちに示すなら、あなたがそれをやる方法を理解するのを助けることができます。

ローカル変数名を使用すると、コードを書く時に知られている必要があります

var myVariableName; 

myVariableNameは識別子ではなく、JavaScript式です。

グローバル変数は実際にはウィンドウオブジェクトのプロパティに過ぎないため、式からグローバル変数を作成できます。あなたはまた、独自の配列またはオブジェクトを作成し、キーまたはインデックスとして式を使用してオブジェクトに配列またはプロパティに値を割り当てることができます

window["report"+numClicks] = "foo"; 

:だから、あなたは、このようなグローバル変数を宣言することができます。

var reportArray = [];    // declare array 
reportArray[numClicks] = "foo"; // assign array entry 

それとも、あなたがオブジェクトを使用できます:あなたの特定のコード例では

var reports = {}; 
reports[numClicks] = "foo";   // assign object property 

を、私は非常にあなたが何をしようとして従っていません(私は非常によくPHPを読んでいませんこれが何であれ)。

onclick="return(confirm('".$reports[$i]."'))" 

またはそのような何か(あなたはそれをサーバー側の部分を修正する必要がある場合があります):しかし、私はそれがすべてに変更することができると思います。それを行うためのローカル変数は必要ありません。

+0

確かに1秒... –

+0

これは識別子です...ラベルは別のものです... –

+0

@Felix King - 私はそれを 'identifier 'という用語を使用するように修正しました。 – jfriend00

1

reportがオブジェクトである場合は行うことができます。

var report = {};  
report['click'+ numClicks] = 'somestuff'; 
console.log(report.click1); // logs 'somestuff' 
+0

+1ローカルオブジェクトを使用しています。 – RobG

0

が、これはPHPとJavaScript

のsettings.php

<?php 
    var settings = new array(
     "name" => "foo", 
     "age" => "bar", 
    ); 
    $json = json_encode(settings); 
    echo "var global_settings ={$json};" 
?> 

HTML/JS

の間で変数を渡すのクリーンな方法であります
<script type="text/javascript" src="settings.php"></script> 
<script type="text/javascript"> 
    alert(global_settings.name); 
    alert(global_settings.age); 
</script> 
関連する問題