ホームページ  >  記事  >  CMS チュートリアル  >  phpcms でフォームをカスタマイズする方法

phpcms でフォームをカスタマイズする方法

angryTom
angryTomオリジナル
2020-02-19 13:53:283901ブラウズ

phpcms でフォームをカスタマイズする方法

phpcms でフォームをカスタマイズする方法

フォームをカスタマイズする手順は次のとおりです:

(1 ): バックエンドを開き、モジュールをクリックしてフォーム ウィザードを見つけ、フォームの追加ウィザードをクリックすると、次のインターフェイスが表示されます。

phpcms でフォームをカスタマイズする方法

(2): 次に、上図のテンプレート選択の 2 つのオプションと、js 呼び出しで使用されるテンプレートを導入する必要があります。フォームのフロント ページでは、js 呼び出しによって使用されるテンプレートは、フォームの送信後に実行されるジャンプ操作を表します。通常の状況では、フォーム スタイルを変更するには、テンプレートを切り替えてコンテンツの一部を選択するだけで済みます。使用されるテンプレートどの操作でも、特定のテンプレート選択 show.html と js 呼び出しに使用されるテンプレート show_js.html はどこに保存されますか?

答えは、phpcms\templates\default\formguide パスの下にあります。実際には、テンプレートの選択を切り替えるだけで済みます。ここでは、show_message.html ファイルを自分で定義し、テンプレートの選択の場所を My show_message に切り替えます.html ファイル。

関連する推奨事項: phpcms チュートリアル

(3): 次は、show_message.html ファイルの作成プロセスです。このファイルの作成は、オリジナルを参照する必要があります。 show.html 書き方としては、show.htmlのフォーム部分の書き方を見てみましょう。

<form method="post" action="?m=formguide&c=index&a=show&formid={$formid}&siteid=<?php echo $this->siteid;?>" name="myform" id="myform">
   <table class="table_form" width="100%" cellspacing="0">
   <tbody>
   {loop $forminfos_data $field $info}
    {if $info[&#39;formtype&#39;]==&#39;omnipotent&#39;}
        {loop $forminfos_data $_fm $_fm_value}
            {if $_fm_value[&#39;iscomnipotent&#39;]}
                {php $info[&#39;form&#39;] = str_replace(&#39;{&#39;.$_fm.&#39;}&#39;,$_fm_value[&#39;form&#39;],$info[&#39;form&#39;]);}
            {/if}
        {/loop}
    {/if}
    <tr>
      <th width="80">{if $info[&#39;star&#39;]} <font color="red">*</font>{/if} {$info[&#39;name&#39;]}
      </th>
      <td>{$info[&#39;form&#39;]}  {$info[&#39;tips&#39;]}</td>
    </tr>
    {/loop}
    </tbody>
    </table>
    <input type="submit" name="dosubmit" id="dosubmit" value=" 提交 "> <input type="reset" value=" 取消 ">
</form>

ここでより重要な部分は次の部分です

(1): フォームのアクション部分。この部分の値は

## です。 #? m=formguide&c=index&a=show&formid={$formid}&siteid=siteid;?> の場合、通常はフォームのアクション部分に直接コピーできます。

(2): formタグ下のname=”myform” id=”myform”の部分は省略可能です、書きたければ書いても大丈夫ですが、書きたくない場合は削除しても大丈夫ですしたくない。

(3): 次は、{loop $forminfos_data $field $info} ループ本体です。このループ本体の方が重要です。$field は、フォーム ウィザードの作成後にフィールドを追加したときに取得されます。英語名は、フィールドの は、メッセージ情報を保存するデータベース内のフィールドに対応し、$info には、データ テーブル フィールドの中国語名など、定義したデータ テーブル フィールドに関する追加情報が保存されます。これらの値はどこに設定されますか? ?これは、フォームを作成して [フィールドの追加] をクリックした後に表示されるインターフェイスに入力される内容です。具体的には、次のインターフェイスです:

phpcms でフォームをカスタマイズする方法

(4): 次は変数トラバーサル ループ部分。この部分の主な機能は、{$info['form']} {$info など、作成したデータ テーブル システムに基づいて作成されたフォーム情報コンテンツをループすることです。 ['tips']}< ;/td>このコードの {$info['form']} によって取得されるコンテンツは、現在のフィールドに対応するデフォルトでシステムによって作成されるフォーム スタイルです。以下、下の図の値は私が直接入力したものです $info を出力することで得られる結果の値:

phpcms でフォームをカスタマイズする方法

(5): 最後に注意すべきことは これまで、phpcms システムのデフォルトの show.html フォーム スタイルの実装を確認しました。次に、独自のフォーム スタイルを実装します。実装コードを直接投稿します

<form method=&#39;post&#39; class="met-form met-form-validation" enctype="multipart/form-data" action=&#39;{APP_PATH}index.php?m=formguide&c=index&a=show&formid={$formid}&action=js&siteid=<?php echo $this->siteid;?>&#39;>
     {loop $forminfos_data $field $info}
     {php var_dump($info)}
     {if $info[&#39;formtype&#39;]==&#39;text&#39;}
     <div class=&#39;form-group&#39;>
        <input name=&#39;info[{$field}]&#39; class=&#39;form-control&#39; type=&#39;text&#39; placeholder=&#39;{$info[tips]}&#39; />
     </div>
     {/if}
     {if $info[&#39;formtype&#39;]==&#39;textarea&#39;}
     <div class=&#39;form-group&#39;>
        <textarea name=&#39;info[{$field}]&#39; class=&#39;form-control&#39;  placeholder=&#39;{$info[tips]} &#39; rows=&#39;10&#39;></textarea>
     </div>
     {/if}
     {/loop}
     <div class="form-group m-b-0">
     <button type="submit" name="dosubmit" id="dosubmit" class="btn btn-primary btn-lg btn-block btn-squared" value=" 提交 ">提交留言</button>
     </div>
</form>

Iこのコードの元の show.html に対する最大の変更点は次の点です。

まず第一に、私自身のフォーム スタイルは class="met-formmet-form-validation" であり、この部分は元のコード Content

name="myform" id="myform"

の content 値を削除しました。次に、フォームの入力部分を作成し、これも

を使用します。 {loop $ forminfos_data $field $info} を実行し、$info['formtype'] を使用して、単一行のテキストであるか複数行のテキストであるかを判断します。

単一行のテキストを例に挙げます。

、この部分name='info[{$field}]' の比較 重要なのは、フォームにこれらの数行のコードを書かないと、フォームを送信した後、入力したコンテンツ情報が入力されないことがわかるということです。データベースはまったく削除されず、作成したメッセージの内容はバックグラウンドのメッセージ情報リストに表示されません。

最後に、コード名 = "dosubmit" が送信部分に追加されます。このコードがないと、データベース内でメッセージの内容を見つけることはできません。

これまでのところ、独自のスタイルのフォームを作成できます。

phpcms

ウェブサイト構築ビデオチュートリアルの詳細については、PHP 中国語 Web サイトに注目してください。

以上がphpcms でフォームをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。