1

我有一个与 html 相呼应的 php。在其中一个回声中,我有一个调用 javascript 函数的按钮。在这个调用中,我传递了一个 php 变量。但是,当我看到其中一个元素的值在 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]。php implode 命令可以在这里提供帮助。

    $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])" />

我认为这是你想要的。

编辑:

@Dustin Grahams 建议使用 json_encode 是一个很好的建议。将内爆替换为:

$teams = json_encode($teamsarray);

并从模板中删除多余的括号。

于 2012-04-11T20:50:49.710 回答