以下是我
的代码application / config / form_validation.php文件
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$config = array(
'signup' => array(
array(
'field' => 'first_name',
'label' => 'first_name',
'rules' => 'required|callback_fullname_chk'
),
array(
'field' => 'last_name',
'label' => 'last_name',
'rules' => 'required'
)
));
以下是我
的代码应用/控制器/ UserController.php
public function reg_form()
{
$input_data_array = (array)json_decode(file_get_contents('php://input'));
$this->form_validation->set_data($input_data_array);
if ($this->form_validation->run('signup') == FALSE)
{
$result = array('status' => 404,'message' => $this->form_validation->error_array());
$this->output->set_output(json_encode($result));
}
else
{
$result = array('status' => 200,'message' => 'Executed Succesfully','data'=>$input_data_array);
$this->output->set_output(json_encode($result));
}
}
public function fullname_chk($str)
{
if ($str == 'admin')
{
$this->form_validation->set_message('fullname_chk', 'The {field} field can not be the word "admin"');
return FALSE;
}
else
{
return TRUE;
}
}
在&#39; fullname_chk&#39;回调函数我在$ str变量中隐式获取first_name的值,我可以将其用于自定义验证。我的要求是在同一个回调中获取last_name(第二个输入json键)的值,以及first_name,可能作为第二个参数,因为我不想编写业务逻辑来检查first_name的唯一性和last_name一起使用。请帮助。
答案 0 :(得分:1)
在<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<div id="divListItems"></div>
<script>
$(function () {
ExecuteOrDelayUntilScriptLoaded(addListItems, "sp.js");
});
function addListItems() {
var clientContext = new SP.ClientContext();
var oList = clientContext.get_web().get_lists().getByTitle('faq');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.getItem(itemCreateInfo);
clientContext.load(oListItem);
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
function onQuerySucceeded() {
alert('Item created: ' + oListItem.get_item('Title'));
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
</script>
函数中,您可以像平常一样访问任何post / get变量。在这种情况下,您可以重用fullname_chk
,但是没有其他方法可以将额外数据传递给回调,除非您想在表单验证库之外进行某种验证。