1

PHP経由で1つのデータ取得から数値を爆発させるために、このスクリプトを作成しました。

var n_polls=<?php echo $t_random_number;?>;
var myArray=n_polls.split(','); //explode

for (i=0;i<4;i++)
{
$("#t_sl_poll_"+myArray[i).hide();
}

アイデアは、ランダム ポーリング システム用に php からいくつかの数値を与えることです。これを展開して、ID でループ内のすべてを閉じるようにしたいと考えています。問題は、何かが javascript の爆発関数に失敗するのを見て、常に何も与えないことです。どうすればこれを修正できますか?

ありがとうございました。

4

4 に答える 4

2

PHP で単に配列を挿入できるのに、なぜ Javascript で爆発するのでしょうか?

<?php

$numbers = array(1,2,3,4);
?>

<script type="text/javascript">

var n_polls = <?php echo json_encode($numbers); ?>;

for (i in n_polls) {
   $("#t_sl_poll_" + n_polls[i]).hide();
}

実行できる最適化はさらにありますが、これは開始点の 1 つです。

于 2013-07-11T14:57:37.687 に答える
0

ここには 2 つの問題があります。

まず、php から javascript に数字ではなく文字列を渡すように見えるため、次のように記述する必要があります。var n_polls="<?php echo $t_random_number;?>";

2番目:すでにコメントで指摘されているよう$("#t_sl_poll_"+myArray[i]).hide();に、配列の実際のアドレスと要素に書き込む必要があります。

于 2013-07-11T14:57:22.780 に答える
0

ソースを見てください。エラーコンソールは同じことを教えてくれます。配列 (数値ではない) を引用符で囲んでいないため、実行時にコンパイルに失敗します。

var n_polls="<?php echo $t_random_number;?>";
//QUOTES!   ^                              ^

var myArray=n_polls.split(','); //explode

for (i=0;i<4;i++)
{
    $("#t_sl_poll_"+myArray[i]).hide(); //Missing bracket
    //                       ^
}

これでコンパイルできます

var n_polls="1, 2, 3, 4";

それ以外の

var n_polls=1, 2, 3, 4; //Useless non-working code - not enclosed in anything
于 2013-07-11T14:56:42.397 に答える
0

あなたのコードは次のように動作するはずです

var myArray= [<?php echo $t_random_number;?>];

for (i=0;i<4;i++)
{
    $("#t_sl_poll_"+myArray[i]).hide();
}
于 2013-07-11T15:00:47.937 に答える