質問 > フロント機能 > ■問い合わせページでの項目について |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2007/7/31 14:08
対応状況: −−−
|
■問い合わせページでの項目について いつもお世話になっております。
現在問い合わせページを変更しているのですが、行き詰ってしまいました。。 問い合わせページの項目には <お名前・お名前(カナ)・メールアドレス・確認用メールアドレス・問い合わせ内容> が有るのですが、それにいくつか項目を追加しようとしています。 それに伴い、下記のファイルを変更したのですが、動作不全となってしまいます。 確認ページには増やした項目の値が反映されますが、確認ページの”戻る”ボタンを押して入力ページへ戻ると、 増やした項目に入っていた値が消えてしまいます。 ------------------------------------------------ ■□変更した箇所□■ ○/data/Smarty/templates/contact/index.tpl (入力ページ) <td bgcolor="#f0f0f0" class="fs12n">項目A</td> <td bgcolor="#ffffff" class="fs10n"> <span class="red"><!--{$arrErr.koumoku_a}--></span> <input type="text" name="koumoku_a" value="<!--{$arrForm.koumoku_a|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" size="60" class="box60" style="<!--{if $arrErr.koumoku_a != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}--><!--{/if}-->" /> <span class="red"> (上限<!--{$smarty.const.STEXT_LEN}-->文字)</span> </td> ------------------------------------------------ ○/data/Smarty/templates/contact/confirm.tpl (確認ページ) <tr> <td bgcolor="#f0f0f0" class="fs12n">項目A</td> <td bgcolor="#ffffff" class="fs12n"><!--{$arrForm.koumoku_a|escape}--></td> </tr> ------------------------------------------------ ○/html/contact/index.php (php:動作) //フォーム値変換用カラム $arrConvertColumn = array( 〜省略〜 array( "column" => "koumoku_a", "convert" => "KVa" ), 〜省略〜 ); //エラーチェック処理部 function lfErrorCheck($array) { $objErr = new SC_CheckError($array); 〜省略〜 $objErr->doFunc(array("項目A", "koumoku_a", STEXT_LEN), array("MAX_LENGTH_CHECK")); 〜省略〜 ------------------------------------------------ 恐らく、 switch ($_POST['mode']){ 内の case 'return': 箇所での処理で値を入力ページへ受け渡しているとは思うのですが・・そこで止まってしまいました。。 PHP初心者のため変更して当たり前の箇所に気づいていないかもしれません… ご存知の方がいらっしゃいましたら、アドバイスどうかよろしくお願いいたします。 |
|
homan |
投稿日時: 2007/7/31 14:56
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: ■問い合わせページでの項目について こんにちわー!
引用:
の中にある input タグ内の
を(「arrForm.」を消して)
としてみてはいかがでしょうか。
|
ゲスト |
投稿日時: 2007/7/31 19:16
対応状況: −−−
|
アドバイス頂き、ありがとうございます。 "$arrForm"を消してしまうと、確認ページへの値の受け渡しもできなくなってしまいました…
また、入力ミスなどで入力ページが再表示される際にも値が消えてしまいます。。 |
|
drednote |
投稿日時: 2007/7/31 23:28
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2007/7/30 居住地: 滋賀 投稿: 41 |
Re: アドバイス頂き、ありがとうございます。 確認ページ側のarrFormを消してないってオチとか……
は無いかな?w |
homan |
投稿日時: 2007/7/31 23:46
対応状況: −−−
|
仙人 ![]() ![]() 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: アドバイス頂き、ありがとうございます。 う〜ん
![]() ちなみに 引用: "$arrForm"を消してしまうと、確認ページへの値の受け渡しもできなくなってしまいました… とありますが "$"は残していますよね? 僕の場合、他の項目をコピーして貼り付けて 変数名だとかを変更しただけで全てうまくいきました。 エラーチェック、確認画面への受け渡し、戻ったときのデータ保持で問題はありませんでした。 メール配信でもきちんと値を取得できましたよ。 (お問い合わせメールテンプレートはデフォルトだと項目不足なので http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=875&forum=11&post_id=2628#forumpost2628 を参考に追加しました) ------------- うまくいった例(例えば会社名を追加した場合) ※HTMLソースを若干いじっているので、 デフォルトのHTMLソースと異なりますが、 重要な部分は一緒です。 ●data/Smarty/templates/contact/index.tpl
●data/Smarty/templates/contact/confirm.tpl
●html/contact/index.php
以上です。 (エラーチェック処理部の STEXT_LEN値は”お名前(姓)”のものをコピーしたので、 必要に応じて data/conf/conf.php でオリジナル項目用にdefineで定数を設定してください。)
|
drednote |
投稿日時: 2007/8/1 1:16
対応状況: −−−
|
常連 ![]() ![]() 登録日: 2007/7/30 居住地: 滋賀 投稿: 41 |
Re: アドバイス頂き、ありがとうございます。 なるほど私もソースを良く見ないで勘違いしてたみたいですね。
Confirm.tplはarrFormがついてないと不味いんだ。 で、投稿者氏は元々のソースで、確認画面から戻ったら値が入ってないと 言っていますが index.tplのvalue=の部分がarrForm配列の要素として定義されてるから エラーになる、という事ですね。 index.phpのreturnでは $objPage->$key = $val; こうやって定義されていて、$valはconfirm.tplで <input type="hidden" name="<!--{$key}-->" value="<!--{$item|escape}-->"> こう定義されており、また$keyはarrForm配列内の各要素として定義されているので confirm.tpl表示時にはarrFormに値が入ってないといけないが、 index.tpl表示時には配列の要素としてではなく夫々別々の変数として 保持している状態になっている、と。 であるなら元々投稿されていたソースのindex.tplのarrFormだけ 取っ払えば上手く行く筈ですね、確かに。 私も参考になりました。 |
ゲスト |
投稿日時: 2007/8/1 11:59
対応状況: −−−
|
homan様、アドバイス頂き、ありがとうございます。 はじめのアドバイスを勘違いしておりまして、確認画面でもarrFormを消してしまっておりました。。
2度目にいただきましたアドバイスを元にしたところ、きちんと動きました! drednote様もまとめていただきありがとうございます。 とても参考になりました。 アドバイス頂き、誠にありがとうございました。 |
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |