0

我见过类似的问题,但仍然没有找到解决方案,这真的是在浪费我的时间:(

这是我的控制器

public function test() {
   print_r($_POST);
   return;
}

看法

<?php 
    echo form_open(base_url('go/test'), 'id="update" autocomplete="off" ajax-hidden'); 
    echo form_hidden('id', $id); 
?>
    <input id="update" name="number" class="spinner" readonly="readonly" 
       value="<?$=value?>"/>
<?php 
    echo form_close();
?>

更改 jQuery UI 微调器后,我正在使用 jQuery 提交表单。这是回应:

Array()
4

4 回答 4

3

很可能 jQuery 无法获取传递给控制器​​的值,因为您forminput元素具有相同的 idupdate

也是<?$=value?>不正确的语法。它应该是<?= $value ?>

于 2013-06-11T18:38:40.953 回答
2

你也应该使用 codeingiters 后处理程序 $something = $this->input->post('something');

http://ellislab.com/codeigniter/user-guide/libraries/input.html

于 2013-06-11T18:41:16.880 回答
1

将您的输入ID更改为“更新”以外的其他内容并更改< ?$=value >< ?=$value >

<input id="myInput" name="number" class="spinner" readonly="readonly" value="<?= $value?>"/>
于 2013-06-11T18:40:13.897 回答
1

我忘记了我更改了我的 ajax 处理程序以使用 IE,并且没有更改此特定表单的 ajax 函数,因为此表单的响应应该被隐藏,因此它使用不同的 ajax 处理程序。

这是我的主要提交功能:

(function($){
    jQuery.fn.ajaxFormSubmit =
        function(container, data) {
            var url = $(this).attr('action');
            $.ajax({
                    url: url,
                    type: "POST",
                    data: data,
                    dataType: "html",
                    success: function(msg) {
                                $(container).html(msg);
                        }
                   });
            return this;
         };
})(jQuery);

我曾经在这个函数中序列化表单数据,但后来我意识到它不适用于 IE,唯一的解决方案是在执行其他任何操作之前序列化表单数据!

这是我正在使用的两个函数:

$('form[ajax]').live('submit', function(e){
    e.preventDefault();
    var data = $(this).serialize();
    var container = $(this).attr('cont');
    if (typeof container == 'undefined' || container == false) {
        container = '.#ajax';
    }
    $(container).html('<img src="public/images/ajax.gif"/>');
    $(container).fadeIn('fast');
    $(this).ajaxFormSubmit(container, data);
});

$('form[ajax-hidden]').live('submit', function(e){
    e.preventDefault();
    var data = $(this).serialize();
    var container = '';
    $(this).ajaxFormSubmit(container, data);
});

第二个函数根本没有数据变量。所以我添加了它。希望这可以帮助某人。

于 2013-06-11T22:43:33.430 回答