溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

phpcms中自定義表單的方法

發(fā)布時(shí)間:2020-08-12 11:16:53 來(lái)源:億速云 閱讀:141 作者:小新 欄目:建站服務(wù)器

phpcms中自定義表單的方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

phpcms如何自定義表單

自定義表單的步驟如下:

(1):打開后臺(tái),點(diǎn)擊模塊,找到表單向?qū)?,點(diǎn)擊添加表單向?qū)В霈F(xiàn)下面的界面。

phpcms中自定義表單的方法

(2):接下來(lái),我們需要介紹下上面圖中的模板選擇和js調(diào)用使用的模板這兩個(gè)選項(xiàng),對(duì)于模板選擇的話,其實(shí)就是我們的表單的前臺(tái)頁(yè)面,js調(diào)用使用的模板表示提交表單之后執(zhí)行的跳轉(zhuǎn)操作,一般情況下,我們只需要切換模板選擇部分內(nèi)容就可以實(shí)現(xiàn)表單樣式修改,js調(diào)用使用的模板不需要我們做任何操作,具體模板選擇show.html與js調(diào)用使用的模板show_js.html存儲(chǔ)在什么地方呢?

答案是phpcms\templates\default\formguide路徑下,那么實(shí)際中,我們只需要切換模板選擇即可,在此我自己定義一個(gè)show_message.html的文件,并將模板選擇位置切換成我的show_message.html文件。

相關(guān)推薦:phpcms教程

(3):接下來(lái)就是我的show_message.html文件編寫過(guò)程了,該文件的編寫需要參考原先show.html寫法,我們來(lái)看下show.html里面關(guān)于表單的部分是怎么寫的。

<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['formtype']=='omnipotent'}
        {loop $forminfos_data $_fm $_fm_value}
            {if $_fm_value['iscomnipotent']}
                {php $info['form'] = str_replace('{'.$_fm.'}',$_fm_value['form'],$info['form']);}
            {/if}
        {/loop}
    {/if}
    <tr>
      <th width="80">{if $info['star']} <font color="red">*</font>{/if} {$info['name']}
      </th>
      <td>{$info['form']}  {$info['tips']}</td>
    </tr>
    {/loop}
    </tbody>
    </table>
    <input type="submit" name="dosubmit" id="dosubmit" value=" 提交 ">&nbsp;<input type="reset" value=" 取消 ">
</form>

這里面比較重要的有下面幾個(gè)部分

(1):form的action部分,該部分的值為

?m=formguide&c=index&a=show&formid={$formid}&siteid=<?php echo $this->siteid;?>,一般情況下你直接復(fù)制到自己的form表單的action部分就可以了。

(2):至于form標(biāo)簽下的name=”myform” id=”myform”部分,是可有可無(wú)的,想寫就寫不想寫去掉也可以的。

(3):接下來(lái)是{loop $forminfos_data $field $info}循環(huán)體了,這個(gè)循環(huán)體比較重要,$field拿到的是你在創(chuàng)建完表單向?qū)е?,添加字段的時(shí)候取的字段英文名,對(duì)應(yīng)的就是存儲(chǔ)你留言信息數(shù)據(jù)庫(kù)中的字段,而$info則存儲(chǔ)著你定義數(shù)據(jù)表字段的一些額外信息,比如數(shù)據(jù)表字段的中文名,具體這些值在哪些地方設(shè)置呢?就是在你創(chuàng)建完表單之后,點(diǎn)擊添加字段之后出現(xiàn)的界面中填寫的內(nèi)容,具體就是下面界面:

phpcms中自定義表單的方法

(4):接下來(lái)是變量遍歷循環(huán)部分,該部分主要功能是循環(huán)拿到根據(jù)我們創(chuàng)建的數(shù)據(jù)表系統(tǒng)為我們創(chuàng)建出來(lái)的表單信息內(nèi)容,比如<td>{$info['form']} {$info['tips']}</td>這句代碼中的{$info['form']}獲取到的內(nèi)容就是當(dāng)前字段對(duì)應(yīng)的系統(tǒng)為我們默認(rèn)創(chuàng)建的表單樣式,舉個(gè)例子如下圖,下圖中的值是我直接打印$info得到的結(jié)果值:

phpcms中自定義表單的方法

(5):最后一個(gè)需要注意的地方就是<input type="submit" name="dosubmit"一定要記得添加name="dosubmit",因?yàn)樵趐hpcms\modules\formguide路徑下的index.php中,存在判斷$_POST['dosubmit']的代碼。

到此為止,我們查看了phpcms系統(tǒng)默認(rèn)的show.html表單樣式實(shí)現(xiàn),接下來(lái)我們實(shí)現(xiàn)自己的表單樣式,我直接把我的實(shí)現(xiàn)代碼貼出來(lái)

<form method='post' class="met-form met-form-validation" enctype="multipart/form-data" action='{APP_PATH}index.php?m=formguide&c=index&a=show&formid={$formid}&action=js&siteid=<?php echo $this->siteid;?>'>
     {loop $forminfos_data $field $info}
     {php var_dump($info)}
     {if $info['formtype']=='text'}
     <div class='form-group'>
        <input name='info[{$field}]' class='form-control' type='text' placeholder='{$info[tips]}' />
     </div>
     {/if}
     {if $info['formtype']=='textarea'}
     <div class='form-group'>
        <textarea name='info[{$field}]' class='form-control'  placeholder='{$info[tips]} ' rows='10'></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>

我這段代碼對(duì)原先show.html最大的改動(dòng)在于下面幾點(diǎn)

首先我自己的表單樣式為class="met-form met-form-validation",而原先的代碼中不存在這部分內(nèi)容

我去除了name="myform" id="myform"這部分內(nèi)容值

接下來(lái)在表單創(chuàng)建input部分,同樣使用了

{loop $forminfos_data $field $info}的方式,并且通過(guò)$info['formtype']來(lái)判斷是單行文本還是多行文本

以單行文本為例

<input name='info[{$field}]' class='form-control' type='text' placeholder='{$info[tips]}' />,這部分中name='info[{$field}]'比較關(guān)鍵,如果你的表單中沒寫這幾句代碼,你會(huì)發(fā)現(xiàn)在提交表單之后,數(shù)據(jù)庫(kù)中根本沒有你填寫的內(nèi)容信息,后臺(tái)中留言信息列表中也不會(huì)出現(xiàn)你寫的留言內(nèi)容

最后在submit部分添加了name="dosubmit"這句代碼,注意,如果沒有這句代碼,你照樣在數(shù)據(jù)庫(kù)中找不到你的留言內(nèi)容。

至此為止,我們已經(jīng)可以創(chuàng)建自己風(fēng)格的表單啦!

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)phpcms中自定義表單的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI