0

フォームのテキスト フィールドを作成していますが、 という追加の属性を設定しadditionalて、html マークアップが次のようになるようにしたいと考えています。

<dd id="email-element">
   <input type="text" value="" id="email" name="email" additional="">
</dd>

そのように使用して属性を設定できますsetAttrib

$email = new Zend_Form_Element_Text('email');
$email->setAttrib('additional', '');
$this->addElement($email);

additional次に、 ajax を介してクライアント側での値を設定しています。しかし、フォームが送信されると、additional空に見えます。フォームを var_dump すると、このフォーム フィールドの属性として表示されますが、空です。また、リクエストを var_dump すると、リクエストは含まれません (フィールド値自体ではなく属性であるため、これは理解できます)。クライアント側で変更された属性を読み取る方法はありますか?

4

1 に答える 1

0

PHP はブラウザで変更されたフォーム属性を読み取る方法はありませんが、クライアント側で読み取って PHP に送り返すことはできます。送信される唯一のデータは、要素の値そのものです。

PHP で属性が必要な場合は、隠し入力additional(または好きなもの) を追加し、フォームのonsubmitイベント中に属性の値を読み取り、隠し要素に値を入力してフォームを送信できます。クライアントで Javascript が無効になっている場合、値は取得されませんが、そのメソッドを使用して値を読み取ってサーバーに送信できることに注意してください。

それが役立つことを願っています。

于 2012-06-13T03:13:55.127 に答える