
フォームの要素がつかむ値の変更方法について教えて下さい。
php5とQuickFormの組み合わせでフォーム画面を作成しています。
それは、メールに似た機能を持つ画面ですが、画面の入力要素は「配信元」、「配信先」、「件名」、「本文」
です。
これらの要素に対して次のような形でデフォルト値を設定して、フォームの要素を$form->freeze();で凍結して表示すると
各要素は設定値が凍結された状態で表示されます。
$form->setDefaults(
array(
'user_id_from' => 'tanaka',
'user_id_to' => 'suzuki',
'mail_ken' => 'こんにちは',
'mail_main' => 'また遊びましょう',
)
);
(画面表示)
配信元:tanaka
配信先:suzuki
件名:こんにちは
本文:また遊びましょう
このように凍結された要素が表示された画面で「返信」ボタンを押した場合の動きが意図したものになりません。
目的(意図したもの)は、この凍結された要素が表示された画面で「返信」ボタンを押すと。user_id_fromとuser_id_toの値が入れかわり、user_id_from要素以外は凍結が解除されて次のような表示にしたいのです。
(画面表示)
配信元:suzuki
配信先:tanaka
件名:こんにちは
本文:また遊びましょう
※動作のイメージとしては、メールの受信メールを開いた状態の画面(編集不可)で返信ボタンを押すと、メールの作成画面に切り替わり、受信メールの配信元と配信先の値が入れかわったものが作成画面に配信元と配信先に入ります。
そして、作成画面の配信元以外は編集が可能にしたいです。
そこで、凍結された画面で「返信」ボタンが押された場合、処理の中で次の通りに$form->setDefaultsの設定を行いましたが、画面の表示結果としては最初に設定した値から変わっていません。
$form->setDefaults(
array(
'user_id_from' => 'suzuki',
'user_id_to' => 'tanaka',
'mail_ken' => 'こんにちは',
'mail_main' => 'また遊びましょう',
)
);
現状では、「返信」ボタンが押された処理で配信元と配信先の値を入れ替える事だけができません。
何がいけないのでしょうか?
全く分かりません。ヒントだけでもよいのでアドバイスを下さい。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
QuickFormは、$form->setDefaults()よりもPOSTデータの方を優先するようになってたと思います。
望みの動きをさせたいなら$form->setConstants()を使えばいいと思います。
例)$form->setConstants(array('user_id_from' => 'suzuki'));
ありがとうございました。おかげさまでできました。
setConstantsは調べている時に存在を知りましたが、定数の設定で絶対に値の変更できない意味だったので、要素に値を設定する場合、これは使えないと勝手に判断したのが間違いでした。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- gooメール クーポンコードは存在しません 1 2022/06/09 10:54
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- Yahoo!メール ぷららメールの送受信が出来なくなった 2 2023/07/16 11:48
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP版フォームメール
-
「テキストボックス→Enterキー...
-
フォームの要素がつかむ値の変...
-
htmlからbatファイルを起動する
-
graphvizの使い方
-
問い合わせフォームからのメー...
-
階層式のプルダウンセレクトを...
-
チェックボックス エラー表示...
-
Googleフォームを回答したか確...
-
アンケート用紙での回答ができない
-
メールフォームについて
-
フォーム入力画面で・・・・
-
CGI? JS? ASP? 何...
-
qmailって何ですか?
-
sendmailの動作確認
-
ビジネスメールの敬称
-
【CGI】 sendmailの-fオプショ...
-
Excel-VBAでInputBox+Pulldown...
-
掲示板で擬似フォームメールを...
-
Excelの使い方で質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからbatファイルを起動する
-
アイフォン使ってたらちょくち...
-
メール送信フォームとhistory.b...
-
戻ると入力したフォームの内容...
-
ウェブサイト上のボタンを自動...
-
ページ移動した場合の、フォー...
-
大学の出欠確認でQRコードを読...
-
Zend framework リダイレクトで...
-
階層式のプルダウンセレクトを...
-
メールフォームの確認画面が表...
-
RealSystem Producer BasicをDL...
-
非同期通信で掲示板を作る際の...
-
子画面から親画面に値を返す方法
-
掲示板のセキュリティについて...
-
編集不可で固定とするため とは
-
PHPとSQLiteのアップロードにつ...
-
PHPで特定の文字列を抽出する方法
-
ブラウザの「戻る」ボタンを押...
-
SQL insert文のシングル・ダブ...
-
accessでフォームを希望の入力...
おすすめ情報