php - 将表单数据传递给 Controller

标签 php javascript jquery ajax codeigniter

所以在我的Javascript中我使用表单序列化输出是正确的

(issubmit=1&username=tester&password=test&cpassword=test&firstname=sdfds&lastname=fsdfdsf&gender=&email=pie%40aol.com&phone=&address=&phone=&address=)

当我尝试将其传递给 Controller ​​时,我什么也没得到,result = ""。我做错了什么?

Jquery:

var dataString = $("form").serialize();
    $.ajax({
        url: '<?php echo base_url();?>index.php/welcome/submit_form/',
        async: false,
        type: 'POST',
        data: dataString,
        dataType: 'html',
        success: function(data) {
        $('#ajax-content-container').html(data);
    }
});

Controller :

function submit_form() {
    $data = $this->input->post('dataString');
    echo "<p>result= ".$data."</p>";
}

最佳答案

您的 Controller 似乎正在检查名为“dataString”的 post 参数。但这个参数似乎没有在你的ajax请求中发送。当您序列化表单时,它会将所有表单字段组合成一个 url 编码的字符串。这里没有引用“dataString”参数。

您可能想要在表单中执行的操作是包装每个输入字段的名称属性,如下所示:

<input type="text" name="dataString[username]" value="" />
<input type="text" name="dataString[password]" value="" />

完成此操作后,我相信您应该能够在 Controller 中检查名为“dataString”的参数。它应该是一个包含键/值格式的所有字段的数组。例如

function submit_form() {
    $data = $this->input->post('dataString');
    echo var_dump($data);
}

关于php - 将表单数据传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126589/

相关文章:

php - 从html源代码中删除div

c# - Mouseover 的简单 Css 问题

php - 在移动服务器通信中使用密码作为加密 key 的一部分

javascript - 重定向到子域

javascript - 在图表中设置背景颜色

javascript - 单击 PopConfirm 中的按钮 yes 时如何调用 Angular Controller 中声明的删除函数

javascript - 使用 JavaScript 三元运算符的 CSS 规则

jquery - 在 jQuery 嵌套 .children() 中选择

php - 我将如何添加对 symfony/doctrine 的 cassandra 支持?

javascript - 单击时更改 setTimeout 的持续时间