[CodeIgniter] 透過 form_open() 與 form_open_multipart() 建立表單並自訂參數

分享:

要在 CodeIgniter 建立表單,可以透過其內建的函式 form_open() 與 form_open_multipart(),差別在於 form_open() 是建立一般表單,而 form_open_multipart() 則是可以建立要上傳檔案的表單。

至少要帶入一個參數,是用來指定要 post 的 url,像是:

echo form_open('email/send');

這樣就會建立以下的表單:

<form method="post" accept-charset="utf-8" action="http://example.com/email/send">

 

如果是使用 form_open_multipart() 的話表單則會長這樣:

<form method="post" accept-charset="utf-8" enctype="multipart/form-data" action="http://example.com/email/send">

 

兩個函式都可以帶入第二個或第三個參數,可以使用字串或是使用陣列可以更清楚,第二個參數可以帶入自訂的 html attribute,像是:

$attributes = array('class' => 'email', 'id' => 'myform');
echo form_open('email/send', $attributes);

 

第三個參數帶入陣列,則可以自動生成 input type="hidden" 以及對應的 name 和 value,像是:

$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);

產出的 html 會像這樣:

<form method="post" accept-charset="utf-8" action="http://example.com/email/send">
    <input type="hidden" name="username" value="Joe" />
    <input type="hidden" name="member_id" value="234" />

善用 CI 內建的函式可以讓表單建立更輕鬆。

參考:
表單輔助函數

 

課程推薦

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

輸入折扣碼 TC1451JAN 還可以額外獲得 NT$500 優惠喔。

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。