0

我得到未定义的变量,我不确定如何将其声明为变量?

Notice: Undefined variable: [$scores_round0],
[$scores_round1],
[$scores_round2],
[$scores_final]

谢谢

这是我正在使用的功能:-

public function bracketScores($tournID) {

    $maxRounds = $this -> maxRounds($tournID);
    $scores_template = false;

    for($i = 0; $i < $maxRounds - 1; $i++) {
        $scores_template.='[$scores_round'.$i.'],<br>';
    }
    $scores_template.='[$scores_final]';

    return $scores_template;
}

从类文件:

$scores_template = $_brackets -> bracketScores($tournID);

并从模板文件中:

<script type="text/javascript">var autoCompleteData = 
{
  teams : [
    {$brackets}
  ],
  results : 
  [ 
   [ 
    {$$scores_template}
   ]
  ]
}
</script>
<div id="brackets"><div id="autoComplete"></div></div>
4

1 回答 1

1

您不应该想出自己的输出 JSON 的解决方案 - 只需json_encode在数组结构上使用:

function getAutoCompleteData(/* whatever params you need */) {
    // build your structure here
    $data = array(
        'teams'   => array(),
        'results' => array(),
    );

    return $data;
}

然后像这样使用:

<script>
var autoCompleteData = <?php echo json_encode(getAutoCompleteData(/* params */)); ?>;
</script>

或者对于 Smarty,将结果分配getAutoCompleteData()给一个变量并像这样使用:

<script>
var autoCompleteData = {$autoCompleteData|@json_encode};
</script>
于 2013-08-18T13:05:23.070 回答