繁体   English   中英

如何将表单值从jquery ajax传递到codeigniter控制器?

[英]How to pass form values from jquery ajax to codeigniter controller?

我正在尝试创建一个发送电子邮件的联系表格。 我正在使用jquery ajax。 我的问题是如何将表单值从jquery ajax传递给codeigniter函数? 这是我的html形式:

<form id="ph-form">
    <input type="text" name="name" placeholder="Name*" id="name" />
    <input type="email" name="email" placeholder="Email*" id="email"  />
    <input type="text" name="subject" placeholder="Subject*" id="subject"  />
    <textarea  name="message" placeholder="Messaage*" id="message" ></textarea>
    <input type="submit" name="send_message" value="Send Message" id="submit_btn">
</form>

这是我的jQuery ajax脚本:

<script type="text/javascript">
    $('#submit_btn').click(function(){
        var form_data = {
            name : $('#name').val(),
            email : $('#email').val(),
            subject : $('#subject').val(),
            message : $('#message').val(),
            ajax : '1'
        };
        $.ajax({
            type : 'POST',
            url : '<?= $this->config->site_url().$this->uri->uri_string() ?>',
            async : false,
            data : form_data,
            success : function(data){
                alert("wew success!");
            }
        });
        return false;
    });
</script>

最后是我的控制器:

public function test($view){
    switch($view){
        case 'contact1':
            $this->load->view('ph-contact1');
            break;
        case 'contact2':
            $this->load->view('ph-contact2');
            break;
        case 'contact3':
            $this->load->view('ph-contact3');
            break;
                default:
                    $this->load->view('ph-contact1');
                    break;
    }

    if($this->input->post('ajax') == '1'){
        echo "<script>alert(".$this->input->post('name').")</script>";
    }
}

我不确定ajax是否正常工作,并且我没有表单验证。

首先将输入“提交”更改为“按钮”以防止页面刷新。

<input type="button" name="send_message" value="Send Message" id="submit_btn">

那么网址将是

url : "<?= site_url().'your_controller_name/test'; ?>",

这将是控制器功能测试中的发布数据,然后通过$this->input->post('ajax')获得发布数据。 为了进行调试,您可以通过检查浏览器元素来使用控制台

您的代码看起来可以通过Ajax将值传递给控制器

您可以分别获取表单值,例如

$this->input->post('name');
$this->input->post('email');
$this->input->post('subject');
$this->input->post('message');

另外,请确认您所请求的URL是否指向浏览器的控制台,是否指向给定的控制器。

希望这会帮助你。 让我知道您是否仍然遇到任何问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM