我有一个表单提交的ajax调用;如果我在硬编码时传递我的 sql 参数,它工作正常,但是如果我想在我的模型中传递我的 sql 查询参数和输入(来自 View),它会显示:消息:未定义索引:startDate 和 endDate。
这是我的观点:
<?PHP
$formData2 = array(
'class' => 'form-horizontal',
'id' => 'frm2',
);
echo form_open('gallery/fetchAssociates', $formData2);
?>
<input id="startDate" class="span2" size="16" type="text" />
<input id="endDate" class="span2" size="16" type="text" />
<input type="submit" class="btn btn-primary"
value="Submit" id="querystartEnd" name="querystartEnd" />
<?PHP
echo form_close();
?>
我用于 AJAX 调用的 javascript 如下:
$.ajax({
type: "POST",
async: false,
dataType: "json",
?>",
url: "<?php echo base_url('gallery/fetchAssociates') ?>",
success: function(data) {
html = "<table id='myTable'><thead><tr id='test'><th>ID</th><th>Start Date</th><th> LName</th></tr></thead><tbody id='contentTable'>";
for (var i = 0; i < data.length; i++)
{
html = html + "<tr id='trResponses' ><td><div >" + data[i]['id']
+ " </div></td><td><div >" + data[i]['start'] +
"</div> </td><td><div >" + data[i]['username'] +
"</div></td></tr>";
}
html = html + "</tbody></table>";
$("#resultFrm2").html(html);
},
error: function()
{
alert('error');
}
});
这是我的控制器:
public function fetchAssociates() {
//echo($_POST["startDate"]);
//echo($_POST["endDate"]);
//die();
$this->load->model('user_model');
echo json_encode($this->user_model->getAll());
}
我的模型方法如下:
public function getAll()
{
$wtc = $this->load->database('wtc', TRUE);
$sql = "SELECT username, MIN(timeIn) as start
FROM tc_timecard
GROUP BY userid having MIN(timeIn) > ? and MIN(timeIN) < ?
order by MiN(timeIN);";
//$q = $wtc->query($sql, array('2013-01-08', '2013-01-23'));
$q = $wtc->query($sql, array($this->input->post('startDate'),
$this->input->post('endDate')));
if ($q->num_rows() > 0)
{
foreach ($q->result() as $row)
{
$data[] = $row;
}
return $data;
}
}
正如你在我的代码中看到我的评论:如果我有
//echo($_POST["startDate"]);
//echo($_POST["endDate"]);
在萤火虫中未注释的回应它说“消息:未定义的索引:开始日期和结束日期。” 如果我有,也在我的控制器中
// $q = $wtc->query($sql, array('2013-01-08', '2013-01-23'));
未注释它可以工作,但是一旦我想通过以下代码行传递输入,它就不起作用:
$q = $wtc->query($sql, array($this->input->post('startDate'), $this->input->post('endDate')));
我无法访问控制器或模型中的输入的原因可能是什么?
如果您不清楚,请让我知道您需要更多澄清的部分。
已编辑:值得一提的是,我的 ajax 调用位于以下块内:
$('#frm2').submit(function(e)
{
e.preventDefault();
//My AJAX call here
});
提前谢谢了,