如何从CodeIgniter中的不同文件夹访问AJAX文件

时间:2017-09-29 07:24:45

标签: php jquery ajax codeigniter

我有一个使用Jquery验证的表单,它运行得很好,如果我在同一页面上使用我的验证代码和AJAX,那么即使AJAX也能正常工作。

现在我做了什么,我创建了一个名为validation.js的文件,我在其中添加了带有AJAX的验证代码,并在我的视图页面中添加了如下所示的脚本。

<script type="text/javascript" src="<?php echo base_url() ?>js/validation.js"></script>

然后我点击了提交按钮它检查了我的验证,即使它也转到了我输入的AJAX URL,但这次我没有输出。

我正在浏览器的网络标签中找到我的网址

<?php echo base_url("index.php/user_control/admin_submit_from"); ?>

我正在使用sublime文本编辑器如果我在同一页面上使用了上面的URL,那么base_url颜色显示为蓝色,如果我在validaion.js中使用,则颜色显示为黄色。

以上网址不在validation.js文件中。你能帮帮我吗?

使用AJAX验证我的Jquery

  $(document).ready(function() {
    $("form[name='admin_form_submit']").validate({
        rules: {
            firstname: {
                required: true,
                 minlength:3,
                maxlength:50
            },

            lastname: {
                required: true,
                 minlength:3,
                maxlength:50
            },

    role:{
                required: true
            },

             inst_name:{
                required: true
            }
        },

         submitHandler: function(form) {
        //// form.submit();
         $.ajax({
                type: 'post',
                  url: '<?php echo base_url("index.php/user_control/admin_submit_from"); ?>',
                 data: $('form[name="admin_form_submit"]').serialize(),
                success: function (data) {
                    alert(data);
                }
           });        
        }
    })
});

2 个答案:

答案 0 :(得分:0)

你不能在js文件中执行php

使用url创建一个全局js变量,并在你的js文件中引用

的index.php

<script>
var url = '<?php echo base_url("index.php/user_control/admin_submit_from"); ?>';
</script>

validation.js

 $.ajax({
                type: 'post',
                  url: url,
                 data: $('form[name="admin_form_submit"]').serialize(),
                success: function (data) {
                    alert(data);
                }
           });        
        }

答案 1 :(得分:0)

代码在第一种方法中工作的原因是因为它包含在PHP文件中。在php文件中,你可以嵌入HTMLCSSJS,这就是为什么当你写这样的东西时:

<script src='<?php echo $something; ?>'></script>

回显$something的值。

另一方面,你不能在javascript文件中嵌入php代码。整个代码将被视为string,以及解析它的原因。

所以要解决你问题(如果你仍然想把你的js放在一个单独的文件中),其中一种方法是添加一个隐藏的input与你想要的在您的表单中使用值,并使用js来获取它。

以您的形式:

<input type="hidden" name="my_url" id="my_url" value="<?php echo base_url("index.php/user_control/admin_submit_from"); ?>">

然后你从你的js文件中定位它,如下所示:

var myUrl = $('#my_url').val();

然后将您的ajax更新为:

$.ajax({
    // other objects and properties
    url: myUrl,
});