.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
10 人のユーザが現在オンラインです。 (8 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 10

もっと...

.
.リンク集

メイン
   helper,component,script
     $form->createで出力されるfieldsetを消す方法
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
toys
投稿日時: 2008-11-26 16:45
Baker スタート
登録日: 2008-10-17
居住地:
投稿: 9
$form->createで出力されるfieldsetを消す方法
$form->create()を実行した際に <form>の次に<fieldset>が出力されてしまいます。

意図しない物なので出て欲しくないのですが出さない方法はあるのでしょうか?

方法が在りましたがご教示のほどよろしくお願いします。
mmn
投稿日時: 2008-11-26 17:29
Baker ユーザ
登録日: 2007-1-1
居住地:
投稿: 28
Re: $form->createで出力されるfieldsetを消す方法
私は $tags を利用しました。以下で定義されています。
http://api.cakephp.org/html_8php-source.html#l00047
この $tags 部分だけをコピペして、config 内に tags.php として置きます。
そして、

'fieldset'	=> '',
'fieldsetstart'	=> '',
'fieldsetend'	=> '',

の3つを空にしてしまえば、fieldset は表示されなくなると思います。

# 今のところ、悪影響はありません。
aokazu
投稿日時: 2008-11-26 17:49
Baker 常連
登録日: 2007-1-8
居住地: 浦安
投稿: 57
Re: $form->createで出力されるfieldsetを消す方法
aokazu と申します。

何ゆえ、このタグが必要なのか
ちょうど疑問に思っていたのですが、

http://www.htmq.com/html/fieldset.shtml

にあるように、ユーザビリティーの向上、
コンピュータに理解し易いという意味で、
SEO対策にもなっているのかも、、、。

と結論づけました。
プログラムにはほとんど影響ないでしょうね。

toys
投稿日時: 2008-11-26 19:23
Baker スタート
登録日: 2008-10-17
居住地:
投稿: 9
Re: $form->createで出力されるfieldsetを消す方法
mmn様、aokazu様

ありがとうございます。

display:none;しているのに、IE7でfields枠が表示されて困ってました。

SEO対策だったのですね・・・




余談ですが、display: none; をしているようで、これはSEO対策でスパムと判定のネタにされるという噂があります・・・
goodhills
投稿日時: 2008-12-24 22:27
Baker スタート
登録日: 2008-12-24
居住地:
投稿: 2
Re: $form->createで出力されるfieldsetを消す方法
CakePHP1.2使ってますが
form.phpのcreate関数に
if (!empty($append)) {
$append = '<fieldset style="display:none;">'.$append.'</fieldset>';
} }
で定義されてる部分を消さないと
tags.phpの方法ではfieldsetを消せないのですが。。。
mmn
投稿日時: 2008-12-24 22:51
Baker ユーザ
登録日: 2007-1-1
居住地:
投稿: 28
Re: $form->createで出力されるfieldsetを消す方法
手元にあるのは、1.2.0.7692 と 1.2.0.7945 ですが、
両方とも以下のようになっていますね。


if (!empty($append)) {
	$append = sprintf($this->Html->tags['fieldset'], ' style="display:none;"', $append);
}


お使いのバージョンはいくつですか?
ちなみに view では、


echo $form->create('User',array('action'=>'login'));


と記述しているだけです。

goodhills
投稿日時: 2008-12-24 23:33
Baker スタート
登録日: 2008-12-24
居住地:
投稿: 2
Re: $form->createで出力されるfieldsetを消す方法
CakePHP1.2でもバージョンが違うとダメみたいですね
自分のform.phpは

$append = '<fieldset style="display:none;">'.$append.'</fieldset>';


こうなってますから
これを

$append = sprintf($this->Html->tags['fieldset'], ' style="display:none;"', $append);


のように修正してから
tagsをいじる感じですね

CakePHP v1 .2.0.6311
patorash
投稿日時: 2010-3-17 10:51
Baker スタート
登録日: 2008-2-16
居住地: 愛媛県
投稿: 11
Re: $form->createで出力されるfieldsetを消す方法
Ktai Libraryを使っていてSecurityComponentとAUケータイの組み合わせでハマったので参考にさせていただきました。
ただ、$tagsでは対応できませんでした。
sprintfで置換しているので、SecurityComponentで発行されるトークンまで削除されてしまうからです

以下の情報を参考にしたところ、fieldsetタグのみを削除できました。

http://cakeqs.org/eng/questions/view/disable_fieldset_around_an_hidden_form_element


<?php
echo strip_tags($form->create($model$options), '<form><input>');
echo 
strip_tags($form->end($options), '<form><input>');
?>



phpを使って4年経ちますが、初めてstrip_tagsを使ったような気がします…。
hiromi2424
投稿日時: 2010-3-17 20:34
Baker 常連
登録日: 2009-11-23
居住地: 新潟
投稿: 58
Re: $form->createで出力されるfieldsetを消す方法
http://github.com/cakephp/cakephp1x/commit/de7658e78bdd28c1fbbdf3f6f20f49cbf45860ba

1.3では随分前にdivを出力するように修正されました。


----------------
単純な質問はCakeQsも使ってあげてください。
twitter
Blog

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .