読者です 読者をやめる 読者になる 読者になる

Keep It Real BLOG

ソフトウェアエンジニア。1児の父。 酒、ラーメン、サッカー好き。旅行も好きですが、普段は出不精で大抵たまプラーザ界隈に居ます。

PEAR-Pagerのオプションonclick

今回、非同期でPagerを使いたいと思っていたところ、PEARのPagerの中にonclickというオプションがあることが分かったので、使ってみた。

最新のPagerのパッケージを取得

自分が以前使っていたPagerのパッケージには、まだonclickのオプションは追加されていなかったので、こちらより取得。

PagerのCommon.phpを直す

自分の使い方が悪いの?か、onclickをオプションに追加しても、hrefが働いてしまっていたので、がパッケージ内のCommon.phpの840行目あたりを以下のように直した。

if ( $onclick == "" ) {
  $url = $this->_url . $href;
} else {
  $url = "javascript:void(0)";
}
			
return sprintf('<a href="%s"%s%s%s%s title="%s">%s</a>',
  htmlentities($url, ENT_COMPAT, 'UTF-8'),
  empty($this->_classString) ? '' : ' '.$this->_classString,
  empty($this->_attributes)  ? '' : ' '.$this->_attributes,
  empty($this->_accesskey)   ? '' : ' accesskey="'.$this->_linkData[$this->_urlVar].'"',
  empty($onclick)            ? '' : ' onclick="'.$onclick.'"',
  $altText,
  $linkText
);

Pager使用時にオプション追加

・'httpMethod' => 'GET'
・'onclick' => 'Javascriptの何か'

こんな感じで、一応非同期でのページ送りは出来るようになったけど、どうもPagerを手直ししたあたりが納得いきません。
ちゃんとした使い方が分かる方がいたら、教えて頂けるとありがたいです。