如何知道将表格数据发布到codeigniter控制器后知道表格值

时间:2016-05-26 07:42:38

标签: php ajax codeigniter

如何知道将表格数据发布到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>

3 个答案:

答案 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

打印它们来返回值