Re: [問題] Ajax的.open問題

看板Ajax作者 (ChrisLiu)時間15年前 (2010/10/02 14:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)

10/02 12:32,
$q 會是什麼 成員嗎? (因為你的event trigger原始碼目前
10/02 12:32
http://tinyurl.com/2f4jb3b 新的 ※ 編輯: iii125 來自: 140.127.220.28 (10/02 12:35)

10/02 12:41,
看起來好像是成員變數沒出去的問題。
10/02 12:41

10/02 12:42,
$q 改寫成 $this->q 並把$q 放到成員去宣告應該會work。
10/02 12:42

10/02 12:42,
in php5
10/02 12:42

10/02 12:42,
chris 你幫他看看吧 php 你比我熟 XD
10/02 12:42
竟然被點名了 -_____- 基本上這個問題嘛… 就是你沒有 new 一個 EvnetTrigger 的物件 所以這一頁只是定義了一個 class 叫做 EventTrigger 然後就結束了… 最簡單的最法就是前面加上 $et = new EventTrigger(); 不過讓 class 中直接取 $_GET 中的值感覺很怪 但如果你堅持的話,那應該改成這樣 class EventTrigger{ var $dbh; var $q; public function __construct() { $this->dbh = mysql_connect ("*", "root", "*") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ("exp"); mysql_query("SET NAMES = utf8"); mysql_query("SET CHARACTER_SET_CLIENT = utf8"); mysql_query("SET CHARACTER_SET_RESULTS = utf8"); $this->q=$_GET["q"]; } // 然後後面有 $q 的地方都改成 $this->q; // 直接用 $q 好像也可以,只要 function 中沒有同樣名稱的 parameter // 但既然都用了 OO 就建議養成良好習慣 function UpdateExp($exp,$stren,$level) { mysql_query("UPDATE usr_info SET usr_exp='$exp',strength='$stren',level='$level' WHERE usr_id=' $this->q' "); } 所以我會建議你如果要用 OO 的寫法的話,應該寫成 $et = new EventTrigger($_GET['q']); class EventTrigger{ var $dbh; var $q; // 兼容有一個參數和沒丟參數給 constructor 的時候 // 在 java 和 c# 中要分開寫不同參數數量的 constructor public function __construct($q = NULL) { $this->dbh = mysql_connect ("*", "root", "*") or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ("exp"); mysql_query("SET NAMES = utf8"); mysql_query("SET CHARACTER_SET_CLIENT = utf8"); mysql_query("SET CHARACTER_SET_RESULTS = utf8"); $this->q=$q; } // 以下類推 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.187.167 ※ 編輯: chrisQQ 來自: 219.85.187.167 (10/02 14:35)
文章代碼(AID): #1Cfj8ENo (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1Cfj8ENo (Ajax)