0

これは非常に単純なはずです。いつものように、自分でコードを教える方法が十分ではないため、何かを見落としている可能性があります。うまくいけば、これは理にかなっています...

phpループでは、私はこれを持っています:

var key = <?php echo json_encode($key); ?>;
var id<?php echo $key;?> = <?php echo json_encode($value['Claim']['id']); ?>;
var point<?php echo $key;?> = <?php echo json_encode($value['Claim']['point']); ?>;

これは私が望むように評価します。したがって、id2は、id2が想定されているものと同じです。

その後、次のようにこれらの変数を呼び出す必要があります。

var takeurl = '/api/response.json?point='+ point + '&id=' + id;

「point」と「id」を「point2」または「point4」の値、または略してpoint+keyにする場合を除きます。

私がそれを書くなら

var takeurl = '/api/response.json?point='+ point + key + '&id=' + id;

これは、point2またはpoint3の値ではなく、「point」の値に「key」の値を加えたものを返します。

そして、最初に、これらの値を宣言するときに、常にphpを押す必要はないことに気付きました。私は次のようなことができるはずです:

var key = <?php echo json_encode($key); ?>;
var id[key] = <?php echo json_encode($value['Claim']['id']); ?>;
var point{"key"} = <?php echo json_encode($value['Claim']['point']); ?>;

次に、同じ規則を使用して新しい変数を作成します。答えに配列の使用が含まれる同様の質問を読みましたが、これもすべてより大きなphpループに含まれているため、ここでの状況に当てはまるとは思いません。

申し訳ありませんが、これが明確であったことを願っています。これでユーザー名を取得しています。アイデア?

追加するために編集:問題は私が上で説明したものとは少し異なります。私のコードは、ループに表示される最終変数の値を取得しているようです(「キー」の区別で定義していないかのように、「ポイント」を5回定義しているだけです)。私はまったく意味をなさないのではないかと心配しています。何が起こっているかを確認できるように、いくつかのコードを次に示します:codepad.org/ETX5dI6C

たとえば、ページの4番目のリンクをクリックしたときに、id4とpoint4の値を取得する必要があります。代わりに、どのリンクをクリックしても、最後に定義されたid5とpoint5の変数を渡します。理解できません?

4

2 に答える 2

1

少し厄介ですが、次のようにアクセスできます。

window['point' + key]

これらはグローバル変数であるため、実際には window オブジェクトのプロパティであり、ブラケット構文を使用して参照できます。

window.point5これはwhenと同等ですが、動作しないkey == 5ことに注意してくださいwindow.point+key

したがって、完全なソリューションは次のようになります。

var takeurl = '/api/response.json?point='+ window['point' + key] + '&id=' + window['id' + key];
于 2013-03-23T01:53:21.537 に答える
0

問題は、 の値に の値を加えた値point + keyに評価される文字列を作成していることです。あなたが望むものは の値です。pointkey"point" plus key

したがって、ウィンドウ オブジェクトに割り当てた変数に動的に名前を付ける必要があります。

window[ "point" + key ]

これは(キーが与えられたとしましょう3)必要なものがどれであるかを評価しwindow.point3ます。

于 2013-03-23T01:57:10.080 に答える