1

私はhtmlをエコーするphpを持っています。これらのエコーの1つに、javascript関数を呼び出すボタンがあります。この呼び出しの中で、php変数を渡します。ただし、要素の1つの値がjavascript内にあることを確認すると、未定義になります。

何か案は?

Javascript

function addrow(innerid, teams){


    alert(teams[1]);}

これが私がそれを渡す方法です、これはすべてエコーの中にあります

<input type = "button" id = '.$buttonid.'  value = "Agregar" onclick = "addrow(\'' . $leaguesarray[$numofleagues] . '\','.$teamsarray.')

だから私はaddrow(リーグ値で)を呼び出し、phpから配列teamsarrayも渡します

他のことを試してみることにしましたが、正しく機能していません。

助言がありますか?

echo '<script language="javascript">';


for ($size = 0; $size < sizeof($teamsarray);$size++){

    echo "var teamsarray[".$size."] = ".$teamsarray[$size].";\n";


    }

echo 'function addrow(innerid, size){


for (var i = 0;i< size; i++ ){

html = html + "<option value = " + teamsarray[i] + ">"+teamsarray[i]+"</option>";


    }

html = html +"</select>";
}</script>';

基本的に私がやろうとしているのは、phpを介してjavascriptをエコーすることです。phpから取得した値でドロップダウンを作成しようとしています。これは、addrow関数を使用して動的に追加されます。

4

2 に答える 2

1

json_encodeを探しているように思われるので、次のようにします。

if (empty($teamsarray)) $teamsarray = array();
echo '<input type = "button" id = '.$buttonid.'  value = "Agregar" onclick = "addrow(\'' . $leaguesarray[$numofleagues] . '\','.json_encode($teamsarray).'); return false;" />';
于 2012-04-11T20:36:14.897 に答える
0

javascriptでは、配列は[2,4,6]のようになります。ここでは、phpimplodeコマンドが役立ちます。

    $buttonid = 42;
    $leaguesarray[$numofleagues] = 66;
    $teamsarray = array(2,4,6);

    $teams = implode(',',$teamsarray);

    $input = <<<EOT
<input type="button" id="$buttonid" value="Agregar" onclick="addrow($leaguesarray[$numofleagues],[$teams])" />
EOT;
    echo $input . "\n";

収量:

<input type="button" id="42" value="Agregar" onclick="addrow(66,[2,4,6])" />

私はあなたが望むものだと思います。

編集:

@DustinGrahamsがjson_encodeを使用することを提案するのは良いことです。インプロードを次のように置き換えます。

$teams = json_encode($teamsarray);

そして、テンプレートから余分な角かっこを削除します。

于 2012-04-11T20:50:49.710 に答える