几个问题:

我使用CI和JQuery AJAX。

在下面我的代码,我组装dataString,默认情况下,被附加到URL作为查询字符串。

我已经改变了AJAX的“类型”为POST,所以我的问题是 - 如何在我的CI的应用程序做我访问dataString

这似乎我还是要使用

$name=$this->input->post('name')

哪些我,使得设置dataString冗余?

-

我尝试过寻找,但真的不能找到任何具体。

才有可能仍然让使用CIS验证库和AJAX?

if($this->form_validation->run() == FALSE)
{
    // what can i return so that my CI app shows errors?
}

通常你会重新加载接触形式或将用户重定向。在一个理想世界我想要显示给用户的错误消息。

<强> Jquery的:

    $(document).ready(function($){
        $("#submit_btn").click(function(){
            var name = $("input#name").val();
            var company = $("input#company").val();
            var email = $("input#email").val();
            var phone = $("input#phone").val();
            var message = $("textarea#message").val();
            var dataString = 'name=' +  name + '&message=' + message + '&return_email=' + email + '&return_phone=' +
            phone + '&company=' + company;
            var response = $.ajax({
                type: "POST",
                url: "newsite/contact_ajax/",
                data: dataString
            }).responseText;

            //$('#contact').hide();
            //$('#contact').html('<h5>Form submitted!  Thank you!</h5><h4>We will be in touch with you soon.</h4>');
            //$('#contact').fadeIn('slow');
            return false;
        });  
    });

希望我已经再清楚不过 - 如果任何人有一个CI接触形式,将是巨大的一个体面的例子。有互联网,但没有击中所有的箱子上混的东西。

感谢

有帮助吗?

解决方案

正如我在评论中写道,你并不需要设置一个dataString因为jQuery的能为你做到这一点:

$(document).ready(function($){
    $("#submit_btn").click(function(){
        var response = $.ajax({
            type: "POST",
            url: "newsite/contact_ajax/",
            data: $(your_form_id).serialize()
        }).responseText;

        //$('#contact').hide();
        //$('#contact').html('<h5>Form submitted!  Thank you!</h5><h4>We will be in touch with you soon.</h4>');
        //$('#contact').fadeIn('slow');
        return false;
    });  
});

其他提示

如果您使用了jQuery $。员额()功能,你可以明确地命名POST变量,然后访问它们在你的控制器,你在你的问题建议的方式。

 $.post("<?php echo site_url("newsite/contact_ajax/";?>",
        {my_name:name,my_company:company,my_email:email,my_phone:phone,my_message:message},
        function(){
              //callback function
         },    
         html
      );

在你的控制器:

$this->input->post('my_name');
$this->input->post('my_company');
//etc
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top