-1

リンクをクリックしたときに、データベースから$_SESSION変数を書き込んでいます。

public function getProjectById($id){
  $query="SELECT * FROM projects WHERE id=\"$id\"";
  $result=mysql_query($query);
  $num=mysql_numrows($result);

  while ($row = mysql_fetch_object($result)) {
    $_SESSION['projectid'] = $row->id;
    $_SESSION['projecttitle'] = $row->title;
    $_SESSION['projectinfo'] = $row->info;
    $_SESSION['projecttext'] = $row->text;
    $_SESSION['projectcategory'] = $row->category;
  }
}

これで変数が上書きされ、index.phpに次のようにこれらの変数を表示したいと思います。

<div id="textContent">
   <?php
    if(isset($_SESSION['projecttext']) && !empty($_SESSION['projecttext'])) {
        echo $_SESSION['projecttext'];
    }else {
        echo 'No text';
    }
?></div>

しかしもちろん、私のページは自動的に更新されません。どうやってやるの?

編集:呼び出しコード:

$(document).on("click", ".sublink", function(){
    var subsite = $(this).data('subsite');
    var category = $(this).data('category');
    var title = $(this).data('title');
    var info = category + "/" + title;
    var lower = info.toLowerCase();
    var nospaces = lower.split(' ').join('');
    $('#imageContent').load('php/getImages.php?info='+nospaces);
    $('#textContent').load('php/getProjectById.php?id='+subsite);
});
4

1 に答える 1

0

これを実現するにはいくつかの方法があります (JavaScript は、既にユーザーに表示されている HTML コードを置き換えるか、ページ全体を更新するために使用されます)、関数呼び出しは onclick (特定の php ページを呼び出す) によってトリガーされると思います。おそらくメタリフレッシュで最もうまくいく

ページ全体をリロードします。これは最近では空想的であると考えられていることに注意してください;-)

編集:このように:

public function getProjectById($id){
  $query="SELECT * FROM projects WHERE id=\"$id\"";
  $result=mysql_query($query);
  $num=mysql_numrows($result);

  while ($row = mysql_fetch_object($result)) {
    $_SESSION['projectid'] = $row->id;
    $_SESSION['projecttitle'] = $row->title;
    $_SESSION['projectinfo'] = $row->info;
    $_SESSION['projecttext'] = $row->text;
    $_SESSION['projectcategory'] = $row->category;
  }
// everything done here, do a meta refresh here
?> <meta http-equiv="refresh" content="0;URL='http://example.com/'"> <?php
// worse alternative using .. echo("<meta....
}
于 2012-09-25T15:30:32.843 に答える