PEAK XOOPS - HTMLでValidateするフォームメール (1) in englishin japanese

HTMLでValidateするフォームメール (1)

Target News
Subject HTMLでValidateするフォームメール (1)
Summary いわゆるフォームメールは、デザイナーさんに完全にお任せしたいものの筆頭です。でも、意外と嫌らしくて、結局プログラマーが手を入れる、なんてことになりがちです。その最大の理由は、Validationでしょうか。いろいろなフォームメールシステムを見てきましたが、どんな...

List posts in the topic

none HTMLでValidateするフォームメール (1)

msg# 1
depth:
0
Previous post - Next post | Parent - Children.1 .2 | Posted on 2008/12/4 15:20 | Last modified
jidaikobo  上等兵   Posts: 26
pico の survey プラグインで遊ぼう!の picoSurveyAssistant を書いていて気づいたんですが、pico の formmail プラグインで、checkbox や radio が複数あるフォームの場合、最初の要素の legend が、以降すべての checkbox と radio のタイトルとして、メールで送られているようでした。

で、/trust_path/modules/pico/class/FormProcessByHtml.class.php の 132 行目あたりをチェックしてみました。

// search the nearest <regend> for radio/checkbox
if( preg_match( '#<fieldset.*'.preg_quote($tag).'.*</fieldset>#isU' , $form_html , $regs ) ) {
	if( preg_match( '#<legend[^>]*>([^<]+)</legend>#' , $regs[0] , $sub_regs ) ) {
		$label = strip_tags( @$sub_regs[1] ) ;
	}
}

これを下記のようにしてみたところ、目的の legend の値が、タイトルになって送られたように思われます。
#あっ、コメントにも typo が…… ^^;

// search the nearest <legend> for radio/checkbox
if( preg_match( '#<fieldset.*'.preg_quote($tag).'.*</fieldset>#isU' , $form_html , $regs ) ) {
	if( preg_match_all( '#<legend[^>]*>([^<]+)</legend>#' , $regs[0] , $sub_regs ) ) {
		$sub_regs_tmp = isset( $sub_regs[1] ) ? array_pop( $sub_regs[1] ) : '' ;
		$label = strip_tags( $sub_regs_tmp ) ;
	}
}

これが最良の措置かどうかわからないのですが、ご報告まで〜。
Votes:10 Average:7.00

Posts tree

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!