-1
マイビュー:PHP CodeIgniterのフォームバリデーション
<div class="row eva-add-mainbox">
<div class="col s3 eva-aditem-leftbox">
<p>Product Item Name</p>
</div>
<div class="col s9">
<div class="input-field col s12">
<input type="text" name="pname" class="validate" id="proName">
<label for="icon_prefix">Product Item Name</label>
</div>
</div>
</div>
私のコントローラ: - :
製品の説明フィールドが必要です
$this->form_validation->set_rules('itemCode', 'Item Code', 'trim|required|min_length[2]|max_length[38]|xss_clean'); $this->form_validation->set_rules('pDescription', 'Product Description', 'trim|required|min_length[2]|max_length[38]|xss_clean'); $this->form_validation->set_rules('productPrice', 'Price', 'required|max_length[12]|regex_match[/^[0-9.]+$/]|xss_clean'); $this->form_validation->set_rules('proQuantity', 'Quantity', 'max_length[12]|numeric|greater_than[0]|xss_clean'); $this->form_validation->set_rules('pname', 'Name', 'trim|required|min_length[2]|max_length[38]|xss_clean'); if($this->form_validation->run() == TRUE) { if ($_FILES["file"]["name"] != '') { $test = explode('.', $_FILES['file']['name']); $extension = end($test); $name = rand(100, 999) . '.' . $extension; $location = './images/' . $name; move_uploaded_file($_FILES['file']['tmp_name'], $location); $b = $this->session->userdata('business'); $pdata['product_code'] = $this->input->post('itemCode'); $pdata['title'] = $this->input->post('pName'); $pdata['discription'] = $this->input->post('description'); $pdata['business_id'] = $b->biz_id; $pdata['price'] = $this->input->post('price'); $proQuantity = $this->input->post('proQuantity'); $pdata['image'] = $location; $pAttribute = $this->input->post('pAttribute'); $pValue = $this->input->post('pValue'); } $result = $this->product_model->setProductData($pdata, $pAttribute, $pValue, $proQuantity); }else { echo validation_errors(); }
は、私はエラーを取得します。
価格フィールドは必須です。
[名前]フィールドは必須です。
なぜそれが起こるのか説明できますか?検証で
来るThatsなぜこれら三つのフィールドを検証? '$ this-> form_validation-> set_rules( 'itemCode'、 'Item Code'、 'trim |必須| min_length [2] | max_length [38] | xss_clean');$ this-> form_validation-> set_rules( 'pDescription'、 'Product Description'、 'trim |必須| min_length [2] | max_length [38] | xss_clean');など。それらのフィールドがあなたのHTMLフォームにないからといって、コントローラがそれらのフィールドを送信することを期待しているわけではありません。いくつかのフィールドのみを入力するフォームのカットダウンバージョンが必要な場合は、独自の検証ルールを持つ別個のViewModelが必要です。 – ADyson
これは検証ルールで必須に設定されているためです –