>我正在提交表单,该表单在代码点火器中具有多个字段和不同的验证集。当我们单击提交时,它会重定向并检查验证,如果有任何错误,请在不同的页面上返回我。我不想使用 jquery 或 javascript。
索引.php视图文件
<form id="credit_card_form" method="POST" action="/book/final">
<input class="some_field" type="text" name="some_text" value="hello" />
<input type="submit" value="Submit">
</form>
验证.php控制器文件
function final_validate(){
if(some_text is not good){
$data['msg'] = "It's not good";
$view = "index.php";
$this->load->view($view,$data);
}
}
因此,如果函数返回 false,则不应刷新页面。它应该返回消息。
在不刷新页面的情况下进行任何复杂输入验证的唯一方法是使用 javascript/ajax,如果出于某种原因您不想使用它,则有两个选项
-
使用 html 属性进行基本输入验证,但我宁愿不依赖这个
// this will force the user to enter at least 1 character and maximum of 10 <input class="some_field" type="text" name="some_text" value="hello" required maxlength="10"/>
-
刷新页面,但保留用户输入的任何值并显示错误
// show errors if they exist <?php if(isset($message)): ?> echo 'some error html' . $message. 'some error html'; <?php endif; ?> // show previous value if it exists <input class="some_field" type="text" name="some_text" value="<?php $this->input->post('some_text') ? $this->input->post('some_text') : '' ?>" /> <input type="submit" value="Submit">
// backend // do this if validation fails $this->session->set_flashdata(['message' => 'Invalid data.']);
即使你可以以这种方式做事,我强烈建议使用javascript进行客户端验证。