如何知道将表格数据发布到codeigniter控制器后才能知道表格值,数据未显示在控制器上
<script>
$('#login_form').submit(function (e)
{
e.preventDefault();
var uname = $('#uname').val();
var upassword = $('#upassword').val();
if (uname == "" || upassword == "")
{
$('#error').show().html('All Fields are required');
}
else {
$('#error').html("").hide();
$.ajax({
type: "POST",
url: "<?= base_url(); ?>User_controller/success/",
data: {uname: uname, upassword: upassword},
datatype: 'script'
});
}
}
</script>
答案 0 :(得分:1)
此答案显示如何检查是否收到预期的输入。如果还有其他类型的检查,您需要编辑您的答案并进行解释。
因为您设置了ajax选项dataType: 'script',
,所以假设您要返回javascript。 (注意:您使用datatype
应该是dataType
- 选项名称区分大小写。)我在下面显示的“脚本”仅用作占位符。
使用empty()测试输入的存在。如果未找到input->post('item')
,则CI v2 +和CI v3 +将返回不同的数据类型 - 分别为FALSE(布尔值)和NULL。 empty()
函数适用于两者。
function success()
{
$name = $this->input->post('uname');
$password = $this->input->post('upassword');
if( empty($name) || empty($password) )
{
echo "var result = 'fail';";
}
else
{
echo "your javascript code here";
}
您可能希望trim
字段值在发布之前或success()
之内,只是为了确保用户没有发送一个包含空格字符的字符串。
答案 1 :(得分:1)
对于我的Codeigniter应用程序,我有一个很好的小辅助函数来清理从输入类中获取变量。
function LoadPostVariables($var_array, $soft_load=false){
$CI = &get_instance();
$variables = []
foreach($var_array as $var){
if(!is_null($this->input->post($var)){
$variables[$var] = $CI->input->post($var);
}else{
if($soft_load==true){
$variables[$var] = '';
}
}
}
return $variables
}
然后可以这样调用:
$login = LoadPostVariables(['username', 'password']);
然后可以使用
if(!isset($login['username']) || !isset($login['password'])){
echo "what ever";
}
重点是,它为您提供了检查恶意脚本的中心点,并且能够在使用它们之前剥离输入并将其转义。此外,如果你有大量的帖子变量,那么能够在一行中获取它们真是太棒了。
答案 2 :(得分:0)
在User_controller中写一个函数成功
function success()
{
$uname = $this->input->post('uname');
$upasswoed = $this->input->post('upassword');
...
对于ajax函数,您可以使用echo