[PHP-users 27869] PHPとPEARでHTML_QuickFormのaddGroupの挙動について

GaGaCat gagacat @ n.email.ne.jp
2005年 12月 19日 (月) 19:32:27 JST


はじめまして。
早速の質問で恐縮ですが...

PEARのHTML_QuickFormを使用していて不思議な現象に
当たってしまいました。
addGroup()の第一引数に与える変数名と、第二引数に与える
文字列は同じにしてはいけないのでしょうか?

「PEAR入門」を参考に以下のソースを実行し、送信ボタンを
押すと...

----------
Fatal error: Call to a member function getName() on a non-object in C:\php\PEAR\HTML\QuickForm\group.php on line 391
----------

となってしまいます。


<body>
  <?php
    require_once("HTML/QuickForm.php");

    function showForm($values) {
      print_r($values);
    }

    $form = new HTML_QuickForm("myForm");

    $gender[] = $form->createElement("radio", "gender1", NULL, "男",
"male");
    $gender[] = $form->createElement("radio", "gender2", NULL, "女",
"female");

    $form->addGroup($gender, "gender", "性別:");

    $form->addElement("submit", "sbm", "送信");

    if($form->validate()) {
      $form->process("showForm", FALSE);
    }
    else{
      $form->display();
    }
  ?>
</body>

ここで、上記の

    $form->addGroup($gender, "gender", "性別:");

を

    $form->addGroup($gender, "sex", "性別:");

にする(第二引数を変える)か、もしくは

    $gender[] = $form->createElement(...

を

    $sex[] = $form->createElement(...

にする(変数名を変える)と期待した動作になります。

-- 第二引数を変えた場合の結果 --
Array
(
    [sex] => Array
        (
            [gender2] => female
        )

    [sbm] => 送信
)

-- 変数名を変えた場合の結果 --
Array
(
    [gender] => Array
        (
            [gender2] => female
        )

    [sbm] => 送信
)

「PEAR入門」の本文中でも、添付のサンプルでも同じ名前(?)
を使用しており、私の環境では添付のサンプルは動きません。

どなたか上記現象に当たった方はおられますでしょうか?

以上、乱文ではありますがよろしくお願いいたします。


-- 環境 --
PHP:
Version 5.1.1

PEAR:
Version 1.4.5 / Release Date 2005-11-21
HTML_QuickForm            3.2.5   stable
HTML_QuickForm_Controller 1.0.5   stable

Apache:
Version 2.0.55 (Win32)

OS:
Windows XP Professional(SP2)

----------
  ぼけ猫
----------




PHP-users メーリングリストの案内