2014-08-30 97 views
0

這非常奇怪。我已經嘗試了一切。我看到這裏沒有重大問題。想想,也許你們中的任何一個都可以幫我解決這個問題。我被困在這裏。表單數據不是通過POST發送的,而是通過PHP中的GET工作的

當我按下面的表格中的提交按鈕時,沒有數據被髮送。我確信我沒有錯過名稱屬性,但我完全不理解這個問題。

var_dump($_POST) 

陣列 空

此錯誤的最有趣的部分是,如果我的方法生產得到的,所述值被傳遞。

var_dump($_GET); 

GET方法結果:

array 
    'song_file' => string '19 Jillian.m4a' (length=14) 
    'song_name' => string 'Jillian' (length=7) 
    'singer_name' => 
    array 
     0 => string 'Heitor Pereira' (length=14) 
     1 => string '' (length=0) 
     2 => string '' (length=0) 
     3 => string '' (length=0) 
     4 => string '' (length=0) 
     5 => string '' (length=0) 
    'lang' => 
    array 
     0 => string '2' (length=1) 
    'allow_downloading' => string 'yes' (length=3) 
    'add_song' => string 'Add' (length=3) 

形式代碼如下所示。在這裏,我嘗試了post方法。

<form class="form" action="" enctype="multipart/form-data" method="post"> 
    <fieldset> 
    <div class="row"> 
     <label class="label" for="song-file">Please select a track to upload*</label> 
     <input id="song-file" name="song_file" class="field" type="file" /> 
    </div> 
    <div class="row"> 
     <label class="label" for="song-name">Song Name :</label> 
     <input id="song-name" name="song_name" class="field" type="text" size="42" /> 
    </div> 
    <div class="row"> 
     <label class="label">Artists :</label> 
     <div class="field-row"> 
     <input name="singer_name[]" class="field" type="text" size="25" /> 
     <input name="singer_name[]" class="field" type="text" size="25" /> 
     </div> 
     <div class="field-row"> 
     <input name="singer_name[]" class="field" type="text" size="25" /> 
     <input name="singer_name[]" class="field" type="text" size="25" /> 
     </div> 
     <div class="field-row"> 
     <input name="singer_name[]" class="field" type="text" size="25" /> 
     <input name="singer_name[]" class="field" type="text" size="25" /> 
     </div> 
    </div> 
    <div class="row"> 
     <label class="label" for="allow-downloading"> Allow Downloading</label> 
     <select name="allow_downloading" class="dropdown"> 
     <option value="yes">Yes</option> 
     <option value="no">No</option> 
     </select> 
    </div> 
    <input type="submit" name="add_song" value="Add" class="btn" style="float:none;" /> 
    </fieldset> 
</form> 

按照建議,這是我的PHP代碼的片段,這種形式的用途:

附:我在後端使用Code Igniter。所有其他形式運作良好,期待這一個。

class Song extends CI_Controller { 

    public function add($album_id){ 

     if($_POST){ 
      var_dump($_POST); 
     } 

     $this->load->view('album/form.php'); 
    } 
} 

任何幫助將不勝感激。

+0

請向我們展示一些您的php代碼。 – 2014-08-30 06:47:10

+0

問題僅在於此方法。所有其他的課程/網頁都工作得很好。 public function add($ album_id){ var_dump($ _ POST); if($ _ POST){ //做某事 } $ this-> load-> view('album/form.php'); } 這裏正在加載的形式......對 數據沒有問題,正在通過直通GET方法,但不是通過POST。 – Cooshal 2014-08-30 06:50:59

+0

請將此添加到您原來的帖子,可能是整個php代碼(即在調用此函數的位置)。 – 2014-08-30 06:52:37

回答

0
  1. 可能是你有一些JS提交處理程序,其中,例如,防止默認提交操作,收集所有表單數據,並用GET方法發送通過Ajax?

  2. 可能是CodeIgniter用POST數據做一些魔術。在CodeIgniter核心初始化之前確定轉儲$ _POST數組。