0

我最初在 Silverstripe 论坛上问过这个问题。 http://www.silverstripe.org/data-model-questions/show/21293

我试图从各种谷歌位置广告中获取一个变量,以根据广告中的 ?number=xxx 更改电话号码。

该数字显示一个默认值,除非页面被刷新,然后显示变量值。

有没有更好的方法来显示变量编号而无需刷新页面?

在 page.ss

<% if phonenumber %>$phonenumber <% else %>0800 xxx xxx<% end_if %>

在 page.php 中

public function Phonenumber() {
 ob_start();
  if (!isset($_SESSION)) {
   @session_start();
  }
  if (!isset($_SESSION['number'])){
   $phonenumber = $_GET['number'];
   $_SESSION['number'] = $phonenumber;
  }
 ob_end_flush();
return strip_tags (Session::get ('number'));
}
4

1 回答 1

1

正如 Benjamin Smith 建议的那样,您可以返回从 $_GET 中得到的数字,
尝试以下操作:

php

public function Phonenumber() {
    if (isset($_GET['number']))
        $number = $_GET['number'];
    else
        $number = Session::get('number');
    $number = strip_tags($number);
    Session::set('number', $number);
    if ($number)
        return $number;
    else 
        return '0800 xxx xxx';
}

模板

$Phonenumber

另外,我很确定您不需要使用 ob_start() 也不需要开始会话(silverstripe 已经在那时开始了会话)

于 2012-11-05T17:02:27.143 回答