这很奇怪。我尝试了一切。我认为这里没有明显的问题。想一想,你们中的任何一方都可以帮助我解决这个问题。我被困在这里。
当我按下面表格中的提交按钮时,不会发送任何数据。我确信我没有错过name属性,但我完全不明白这个问题。
var_dump($_POST)
阵列 空
此错误最有趣的部分是,如果我将方法设置为GET,则传递值。
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代码片段,此表单使用:
P.S。我在后端使用Code Igniter。所有其他形式都运作良好,期待这个。
class Song extends CI_Controller {
public function add($album_id){
if($_POST){
var_dump($_POST);
}
$this->load->view('album/form.php');
}
}
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
可能你有一些JS提交处理程序,例如,它阻止默认提交操作,收集所有表单数据并通过ajax用GET方法发送它?
可能是CodeIgniter对POST数据做了一些魔术。要知道它确保在CodeIgniter核心初始化之前转储$ _POST数组。