• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームの要素がつかむ値の変更方法について教えて下さい。)

フォームの要素の値変更方法について

このQ&Aのポイント
  • フォームの要素の値を変更する方法について教えてください。
  • php5とQuickFormを使用してフォーム画面を作成しています。入力要素には「配信元」、「配信先」、「件名」、「本文」があります。設定値を凍結して表示し、返信ボタンを押すと値が入れ替わるようにしたいです。
  • 現在、「返信」ボタンが押された際に配信元と配信先の値を入れ替えることができません。どのようにすれば実現できるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

QuickFormは、$form->setDefaults()よりもPOSTデータの方を優先するようになってたと思います。 望みの動きをさせたいなら$form->setConstants()を使えばいいと思います。 例)$form->setConstants(array('user_id_from' => 'suzuki'));

yanagihk
質問者

お礼

ありがとうございました。おかげさまでできました。 setConstantsは調べている時に存在を知りましたが、定数の設定で絶対に値の変更できない意味だったので、要素に値を設定する場合、これは使えないと勝手に判断したのが間違いでした。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • hiddenの値の受け取り方。

    ログイン画面で入力された「ID」の値を、以降のページで保持しておきたいのですが。 ログイン画面で入力されたID(name=ID)を、次画面で <% Dim SID   SID=Request.Form("ID") %> ID:<%= SID %> と表示し、 <FORM action="次画面" method="post"> <INPUT type="hidden" name="HID" value="<%= SID %>"> </FORM> という感じで、次画面に送ります。 (この状態でソースを見ると、SIDには入力値が入っています) で、次画面で ID:<%= request.Form("HID") %> としていますが、表示できません。 ソースをみても値が何も入ってない状態です。 いきづまってしまっています。 どなたかアドバイスお願いします。

  • CGIフォームにURL内の値を引き継ぐ方法

    超初心者です。 あるページ(P1)から「エントリー」ボタンをクリックさせて、 フォームページ(P2)を開かせるところまではできました。 P1:http://www.test.com/index.cgi?id=12345   ↓「エントリー」ボタンをクリック P2:http://www.test.com/entry.html?EntryNo=12345 ところが、URLにある値「12345」をフォーム内に入れ込むことができません。 どなたか助けていただける方はいませんでしょうか? http://www.test.com/entry.html?EntryNo=12345 のform部分は↓です。 <form method="POST" action="entry.cgi"> <input type="text" name="EntryNo" size="14" value=""> フォーム内に表示させなくても、フォーム送信の際にこの値「12345」が送られるだけでも良いです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • フォームへ値の渡し方について

    こんばんわ。 PHPの勉強をしています。 入力されたIDを元にDBから氏名をクエリし、テキストボックスへ表示させようとしていますが、テキストボックスの指定の仕方が分からず、行き詰っています。 各テキストフォームは<?php?>の中に記述しています。 初心者のため簡単にできることなのかもしれませんが、ご教授願います。 <form method="POST" action="hyouji.php"> ID: <?php if($_POST["ID"]){ $id = $_POST["ID"]; echo "<input type=text name=ID onChange = submit() value = '$id'>"; ECHO "YES"; }else{ echo "<input type=text name=ID onChange = submit()>"; ECHO "NO"; } ?> Name: <?php echo "<input size=28 type=text name=Name ><br>"?> /*上記、テキストボックスに値を入力*/ <input type=submit name=bottun1 value=入力> </form> <?PHP $host = 'localhost'; $user = 'root'; $pass = 'root'; $db = 'DB'; if($_POST["ID"]){ $id = $_POST["ID"]; $link=mysql_connect($host,$user,$pass) or die("接続エラー"); mysql_query("SET NAMES sjis") or die("can not SET NAMES sjis"); mysql_select_db($db,$link) or die("接続エラー"); $sql="SELECT * FROM test WHERE id = '$id'"; $res=mysql_query($sql,$link) or die("データ抽出エラー"); $rows = mysql_fetch_array($res,MYSQL_ASSOC); echo "<tr>"; echo "<td>".$rows["user_id"]."</td>"; echo "<td>".$rows["customer"]."</td>"; echo "</tr>"; mysql_close($link); }else{ echo "表示データはなし"; } ?> 以上、長文になりましたがよろしくお願いします。

    • ベストアンサー
    • PHP
  • Formの値が変更されたかどうかを知るには?

    Formの項目の多い画面がありまして、更新ボタンを押した際に DBに対してすべての項目を更新します。 なにも値が変更されていなくても更新ボタンが押されると 更新処理が走ってしまうので Formの項目が1つでも 更新されたときだけ 更新処理をはしらせようと思っています。 JavaScriptでForm(テキストボックス・ラジオボタン・・・) が変更されたことを簡単に判断できる方法を是非 おしえていただきたいのですが。 よろしくお願いします。

  • ページの移動と値の渡し方

    ASPでJscriptを使っています。 ユーザー情報を入力する画面とそれを登録する画面があります。入力画面では送信ボタンを押すと登録画面に飛びます。その際に入力画面で入力した値を登録画面に渡して表示させています。登録画面から戻るボタンを押すとその値をもって、また入力画面に戻ります。戻った時にその値は入力するテキストボックスなどにセットされて表示しています。 登録画面には戻るボタンのほかに登録ボタンがあるのですが、登録ボタンを一回押しあとに、戻るボタンを押したら値はもっていかずに空の状態で再び入力画面にもどりたいのですがどうしたらいいでしょうか? 登録ボタンを押した後は戻るボタンを押しても値は戻さずに入力画面に戻り、登録ボタンを押す前に戻るボタンを押したら値は戻すという処理です。長文でわかりづらいかもしれませんが教えていただけないでしょうか? ボタンは二つとも<input type =submit value="戻る"> <input type =submit value ="登録">といった感じです。 登録画面(ページ)のフォームは<form action ="登録画面のURL">となっています。

  • form につけた id 値の取得方法

    form 内に id という名前の input 要素があると、form につけた id 値が取得できません。firefox で確認しましたが、例の f2.id が input 要素になります。このような場合 form の id 値はどのようにすれば取得できるでしょうか。 <!doctype html> <html> <head><title>id test</title></head> <body> <form id="f1" name="f1"> <input type="hidden" name="idx"> </form> <form id="f2" name="f2"> <input type="hidden" name="id"> </form> <script type="text/javascript"> var f1 = document.getElementById('f1'); var f2 = document.getElementById('f2'); alert("f1.name: " + f1.name + ", f1.id: " + f1.id + "\nf2.name: " + f2.name + ", f2.id: " + f2.id); </script> </body> </html>

  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • フォームから送信される値について教えてください

    ある人とwebのフォームを作成する話をしていて、相手の方からフォーム のテキストやチェックボックスなどinput要素では、name属性は必須では なくid属性が必須で、ブラザーからはidとvalueの組み合わせがサーバに 送信されるといわれました。 私の認識としては 「一般にHTMLのフォームをサーバーへ送信する時には、 get・postに かかわらずブラウザが自動的にFORMの子要素内のnameとvalueの値の ペア(name=value&name=valueというような値)を送信する」 だということを話したところ。 getに関しては今もそうかもしれないが、現在のpostの場合はidとvalueの 値のペアが送信され、それをサーバで処理しているというようなことを 言われました。 私自身phpやperlを使っています、ブラウザからの送信方法は get・postで違うが、送られてくる内容はpostの場合もnameとvalueの 組み合わせだと認識しています。 実際にスクリプトを作成して、テストしてもidとvalueの組み合わせは サーバ側のプログラムでは取得できませんでした。 相手の方が言うように最近のブラウザー(クライアント)はサーバに id=valueの組み合わせを送信するものや場合によってそのように振る舞う ことがあるのでしょうか。 この件に関して詳しい方、ご教授いただけないでしょうか。 できればRFC等の確かな資料をお示しいただけると助かります。

    • ベストアンサー
    • HTML
  • DataGridViewの値を別フォームに

    こんにちは。 1つ教えて頂けないでしょうか。 Form1にDataGridViewがあり、どれか1行ダブルクリックすると Form2にForm1のDataGridViewの7列目の値の条件で抽出した結果を Form2のDataGridViewに表示したいのです。 Form1からの受け渡しデータはForm2のテキストボックス(条件)に表示させ 受け渡されて来たときは表示ボタンをクリックしなくてもForm2の DataGridViewは表示したいのです。 それぞれのFormは作成し、Form1は Private Sub dgv_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv.CellDoubleClick Dim f As New Form2 f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Value f.ShowDialog() End Sub とコーディングしました。 Form2は表示されるのですが、データの受け渡しができていないし f.txt条件 = Me.DataGridView.SelectedRows(0).Cells(7).Valueの部分でキャストできませんのエラーに なります。 DataGridViewの選択した値を別のフォームに渡し、そのまま別フォームのDataGridViewを表示させたいのですが。 わかる方おられましたら、教えて頂けないでしょうか。 大変申し訳ありませんが、どうぞよろしくお願いします。

  • Form間の値の渡し方

    1つのForm上のコマンドボタンで別のFormを表示、そこで変数に値を入れ、そのFormを閉じ、元のFormでその変数を使いたいのですが、どうもうまくいきません。 実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。 因みに、両プロシージャーともイベントプロシージャーです。何か基本的なことができていないのだとは思いますが、どなたか教えていただけませんか?よろしくお願いします。