我在将表单值插入表格时遇到问题。我的程序显示没有错误,并且表中添加了一条记录。唯一的问题是,插入的值在每列中始终为“0”。
这是我在视图中的表单
<form action="<?php echo site_url();?>/index.php/save_testscript" method = 'post'>
<input type = "hidden" value = "1" name = "hcount1" />
<input type = "hidden" value = "1" name = "hcount2" />
<input type = "hidden" value = "1" name = "hcount3" />
<input type = "hidden" value = "0" name = "testoption" />
<input type = "hidden" name = "hdn_testcaseid" id = "hdn_testcaseid"/>
<input type = "hidden" name = "hdn_catid" id = "hdn_catid"/>
<!-------------MODAL------------>
<div class="container">
<div class="row">
<div class="span4">
<label>Project Name</label>
<select name="proj_name" id="proj_name" >
<option value="">--Project Name--</option>
<?php
if($projectname['ResponseCode'] == "0000")
{
foreach ($projectname['ResponseData'] as $item)
{
?>
<option value="<?php echo $item['ProjectName']; ?>"><?php echo $item['ProjectName']; ?></option>
<?php
}
}
?>
</select>
</div>
<div class="span4">
<label>Test Script Name</label>
<input type="text" id="txt_testscriptname" name="txt_testscriptname">
</div>
<div class="span4">
<label>Test Site</label>
<input type="text" id="txt_testsite" name="txt_testsite">
</div>
</div>
</br>
</br>
<div class="row">
<div class="span4">
<div class="row">
<div class="side_nav">
<div class="" id = "scenario_list"></div></br>
</div>
</div>
</br>
<div class="row">
<div class="span4">
<a href="#" id = "xmodal" data-toggle="modal" data-target = "#myModal" data-backdrop="static" data-keyboard="false" >Add Test Scenario</a>
</div>
</div>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-body">
</br></br>
<select name="cat_name" id="cat_name" >
<option value="">--Category Name--</option>
<?php
if($categoryname['ResponseCode'] == "0000")
{
foreach ($categoryname['ResponseData'] as $item)
{
?>
<option value="<?php echo $item['CategoryId']; ?>"><?php echo $item['CategoryName']; ?></option>
<?php
}
}
?>
</select>
</br>
<select name="testcases_ddl" id="testcases_ddl" >
<option value="">--Test Case--</option>
</select>
<div class="accordion" id="accordion2">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
Test Case
</a>
</div>
<div id="collapseTwo" class="accordion-body collapse">
<div class="accordion-inner" id = "scenarios">
<div class="test-description" id = "test_desc">
TEST DESCRIPTION
<!-- add data here-->
</div>
<div class="expected-result" id = "exp_result">
EXPECTED RESULT
<!-- add data here-->
</div>
<div class="expected-charge" id = "exp_charge">
EXPECTED CHARGE
<!-- add data here-->
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary" id="save_scenario" name="save_scenario">Save</button>
</div>
</div>
</div>
<div class="span8">
<div class="createnew-content">
<div class="row">
<div class="span4">
<label>TEST DESCRIPTION</label>
<input class="input-xlarge" type="text" id="txt_testdesc" name="txt_testdesc" disabled = "disabled">
</div>
<div class="span4">
<label>REMARKS</label>
<input class="input-xlarge" type="text" id="remarks" name="txt_remarks">
</div>
</div>
<div class="row">
<div class="span4">
<label>EXPECTED RESULT</label>
<input class="input-xlarge" type="text" id="txt_exp_res" name="txt_exp_res" disabled = "disabled">
</div>
<div class="span4">
<label>EXPECTED CHARGE</label>
<input class="input-xlarge" type="text" id="txt_exp_cha" name="txt_exp_cha" disabled = "disabled">
</div>
</div>
<div class="row">
<div class="span4">
<label>TEST WEBSITE</label>
<input class="input-xlarge" type="text" id="test_website" name="txt_testwebsite">
</div>
</div>
<div class="row">
<div class="span2">
<button type="button" class="button-orange-big" id = "btnSave">SAVE</button>
</div>
</div>
</br>
</div>
</div>
</div>
</br>
</div>
</form>
这是我的观点ajax代码。
$('#btnSave').click(function(){
//$("#tc").submit();
if(confirm("Are you sure want to save this transaction?")==false){
return false;
}else{
$.ajax({
type:'post',
dataType:'json',
url: "<?php echo site_url();?>/testscript/save_testscript",
data: $('form').serialize(),
success: function(data){
if(data.response=="successful"){
alert('Save Successful.');
window.location.assign("<?php echo site_url();?>/index.php/testscript");
}else{
alert('error');
}
return false;
}
})
}
});
我的控制器代码
function save_testscript(){
$project_name = $this->input->post('proj_name');
$category_id = $this->input->post('hdn_catid');
$testcase_id = $this->input->post('hdn_testcaseid');
$testcript_name = $this->input->post('txt_testscriptname');
$test_site = $this->input->post('txt_testsite');
$description = $this->input->post('txt_testdesc');
$remarks = $this->input->post('txt_remarks');
$expected_result = $this->input->post('txt_exp_res');
$expected_charge = $this->input->post('txt_exp_cha');
$test_website = $this->input->post('txt_testwebsite');
//echo $project_name;
$this->load->model('testscript_model');
$data = array('category_id'=>$category_id,
'testcase_id'=>$testcase_id,
'project_name'=>$project_name,
'testscript_name'=>$testscript_name,
'test_site'=>$test_site,
'test_website'=>$test_website,
'description'=>$description,
'remarks'=>$remarks,
'expected_result'=>$expected_result,
'expected_charge'=>$expected_charge,
'date_created'=>date('m-d-y'),
'created_by'=>'admin');//change this to the current online user
$query = $this->testscript_model->insert_testscript($data);
die(json_encode(array('response'=>'successful')));
型号代码
function insert_testscript($data)
{
$this->load->database();
$this->db->insert('testscripts',$data);
}
我不知道是什么问题。我尝试使用萤火虫和尾巴,但没有出现错误..我很确定我的字段在表单内...
答案 0 :(得分:0)
首先:使用 变化
<?php echo site_url();?>/testscript/save_testscript
到
<?=base_url('testscript/save_testscript');?>
然后直到解决你的问题,只需禁用你的ajax并让表格正常发布;
并在你的控制器中添加
function .....(){
echo "<pre>";
print_r($this->input->post());
....you code....
print_r($data);
echo "</pre>";
...your query...
$query = $this->testscript_model->insert_testscript($data);
echo $this->db->last_query();
return;
}
这会告诉你问题出在哪里!
答案 1 :(得分:0)
只是一个提示:检查表列不是全部整数。如果是这样,如果你试图插入一个字符串,它将使它为0。