如果代码点火器中的表单验证出错,请不要刷新页面



>我正在提交表单,该表单在代码点火器中具有多个字段和不同的验证集。当我们单击提交时,它会重定向并检查验证,如果有任何错误,请在不同的页面上返回我。我不想使用 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,如果出于某种原因您不想使用它,则有两个选项

  1. 使用 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"/>
    
  2. 刷新页面,但保留用户输入的任何值并显示错误

    // 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进行客户端验证。

相关内容

  • 没有找到相关文章

最新更新