php - 无法将输入值传递给控制器
问题描述
我的代码有问题。我无法将输入值传递给控制器。所以,我有一个选择框。我们在选择框中选择的数字将生成将显示多少个表单。因此,如果我在选择框中选择 3,则相同的表单将出现 3 次。而且,当我提交表单以保存数据时,在将数据插入数据库之前控制它的 var_dump(),我得到数组 (0){},这意味着 null。谁能帮我?以及如何在同一个数据库中同时插入多行?谢谢你
<label for="sel1">Jumlah permintaan rekrut karyawan :
</label>
<select class="form-control" name="sel1" id="sel1" >
<option selected>Pilih</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
<button id="btn" type="button" class="btn waves-effect waves-light btn-primary">Primary</button></div>
</form>
</div>
</div>
</div>
</div>
</div>
<div style="width:100%;height:100%;position:absolute;vertical-align:middle;text-align:center;">
<button type="button" id="btn-submit" style="display: none; margin: auto;" class="btn waves-effect waves-light btn-primary" data-toggle="modal" data-target="#myModal">Request</button>
</div>
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
<p align="center">Are you sure you want to request ?</p>
</div>
<div class="modal-footer">
<button type="button" id="button-smt" class="btn btn-primary mr-auto" onclick="window.location.href='<?php echo site_url('hire/submit_hire'); ?>'">Yes</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">No</button>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript">
$(document).ready(function(){
$('#sel1').on('change', function(event) {
initForms($(this).val());
});
$('body').on('click', '.btn', function(){
$('.form-horizontal').each(function(){
$(this).show();
$('#btn-submit').show();
});
});
});
$('#button-smt').click(function(e){
event.preventDefault();
alert('test');
alert($('#empreqstat').val());
/* $.ajax function will go here to save row */
$.ajax({
type: "POST",
url: "<?php echo base_url('hire/submit_hire');?>",
data: {empreqstat : $('#empreqstat').val(), position : $('#position').val(),empstat : $('#empstat').val(), Education : $('#Education').val() , Experience: $('#Experience').val(),jobdesc : $('#jobdesc').val() },
dataType:'json',
success:function(data){
error:function(){
alert('data gagal disimpan');
}
});
});
function initForms(formCount){
var finalHTML= "";
for(i=0; i<formCount; i++){
var tempHTML ='<div class="card"><form id="$formid$" action="<?php echo base_url('hire/submit_hire');?>" method="POST" class="form-horizontal striped-rows b-form" style="display:none;"><div class="card-body"><h4 class="card-title">Rekrut Karyawan'+(i+1)+' </h4><div class="form-group row"><div class="col-sm-3"><label class="control-label col-form-label">Employee Request Status</label></div><div class="col-sm-9"><select class="form-control" name="empreqstat" id="empreqstat" ><option selected>Pilih</option><option value="Replacement">Replacement</option><option value="Add">Add</option></select></div></div></div></form></div>';
tempHTML = tempHTML.split("$formid$").join("form-" + i);
finalHTML += tempHTML;
}
$('.form-container').empty().html(finalHTML);
}
我的控制器:
public function submit_hire(){
$this->form_validation->set_rules('empreqstat', 'empreqstat', 'required');
var_dump($_POST);exit;
}
解决方案
这$('empreqstat').val()
不是一个有效的选择器。
如果我想如果您console.log
在发送数据之前您会注意到这些变量没有被填充。您还可以在“标题”下的开发工具中查看请求以查看已发布的数据。
你需要一些类似的东西$('name=["empreqstat"]')
但是,这种方法的问题是您有多个具有相同输入字段名称的表单。
所以现在你必须更具描述性。
$("#submit").click(function(){
var form = $(this).parents('form:first');
console.log($("input[name='somename']",form).val());
});
推荐阅读
- flutter - 在 Flutter 的 ButtonBar 中添加 TextField
- c++ - 如何在 Windows 10 的自定义凭据提供程序中更改 LOCK 场景 CPUS_UNLOCK_WORKSTATION 条件下用户的域密码
- xml - 将 XML 转换为 AVRO - 带有封闭属性和元素值的 xml 元素
- ubuntu - 当我使用 client_body_temp_path 时,Linux(Ubuntu)和 Nginx 权限在另一个磁盘上
- vue.js - Vuejs:在 [__ob__: Observer] 中获取价值
- javascript - 反应本机 RNFetchBlob 创建文件未创建正确的文件
- c++ - 在这种情况下可以避免模板专业化吗?
- reactjs - React-Bootstrap 和 Bootstrap 未使用 NPM 安装
- c++ - 使用 Clang++ 编译器从 Visual Studio Code 运行 C++ 文件时,如何关闭 dSYM 文件?
- python - AttributeError:模块“PIL.Image”没有属性“load_img”