0

私はもともとSilverstripeフォーラムでこの質問をしました。 http://www.silverstripe.org/data-model-questions/show/21293

さまざまなGoogleロケーション広告から変数を取得して、広告の?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() を使用する必要も、セッションを開始する必要もないと確信しています (シルバーストライプはその時点ですでにセッションを開始しています)。

于 2012-11-05T17:02:27.143 に答える