2013-06-11 60 views
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提交表單,一旦jQuery UI微調器發生變化, 這是響應:

Array() 
+0

我必須補充說,其他形式在網站工作正常 – Sarah

+0

該輸入似乎沒有類型,應該是type =「hidden」?可能不是原因。 – somedev

+0

http://stackoverflow.com/questions/14201815/codeigniter-post-data-empty查看並檢查 –

回答

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瀏覽器,唯一的解決辦法是序列化前的表單數據做別的事!

這裏有2個功能,我使用:

$('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); 
}); 

第二個功能就是沒有足夠的數據變量。所以我加了它。 希望這可以幫助某人。

3

最有可能jQuery是不是能夠得到一個值傳遞到您的控制器,因爲你的forminput元素具有相同的ID update

而且<?$=value?>是不正確的語法。它應該是<?= $value ?>

1

您輸入ID更改爲比「更新」 其他的東西,改變< ?$=value >< ?=$value >

<input id="myInput" name="number" class="spinner" readonly="readonly" value="<?= $value?>"/>