我有一個使用codeigniter uri語言標識符和form_validation的問題。Codeigniter uri語言標識符和form_validation不起作用
問題是當我將$ config ['lang_ignore']設置爲FALSE時,form_validation停止工作。 我已經在乾淨的codeigniter安裝和設置uri語言標識符進行了測試,如codeigniter的wiki中所述。
這裏是我的控制器應用程序/控制器/ form_validation_test.php:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
class Form_validation_test extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('form_validation_test_view');
}
//Get Ajax POST:
public function getPost()
{
$result = FALSE;
$data = NULL;
$this->load->library('form_validation');
$this->form_validation->set_rules('user','User','required');
$result = $this->form_validation->run();
$response = array(
'result' => $result
);
$this->output->set_content_type('application/json')
->set_output(json_encode($response));
}
}
View應用程序/視圖/ form_validation_view.php:
<script src="http://ci_test.localhost/js/jquery-1.8.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://ci_test.localhost/js/ci_test.js"></script>
<form name="formulario" id="formulario" action="http://ci_test.localhost/form_validation_test/getPost">
<input type="text" id="user" name="user" value="">
</form>
<input type="button" id="btnSubmit" value="submit">
<div id="result"></div>
和JavaScript文件JS/ci_test.js:
jQuery(document).ready(function(){
jQuery('#btnSubmit').click(function(){
var postData = jQuery('#formulario').serialize();
var targetUrl = jQuery('#formulario').attr('action');
jQuery.ajax({
url: targetUrl,
data: postData,
type: 'post',
dataType: 'json',
success: function (data, textStatus, jqXHR) {
res = data.result ? 'TRUE':'FALSE';
jQuery('#result').html(res);
}
});
});
});
所以,你可以看到我通過ajax請求發送文章,只是得到結果和地方它在div中。如果將'lang_ignore'設置爲TRUE,它將起作用,但如果將其設置爲FALSE,則不起作用。
我已經觀察到的另一個現象是,當everythig工作得很好,你看到螢火蟲的POST請求,但使用lang_ignore時爲FALSE,你可以看到POST請求,並且仍然加載一個GET請求。我不知道爲什麼發生這種情況,但也許可以幫助別人找到問題。
任何幫助,將不勝感激。 謝謝你的時間。