【发布时间】:2019-01-20 21:45:05
【问题描述】:
我正在使用 CodeIgniter。我正在做一个批处理列表的小项目。现在,如果管理员想要创建批处理列表,那么应该输入开始日期和结束日期以及开始时间和结束时间,那么它将在数据库中检查批处理是否在相同的日期和时间运行?如果是,那么它将显示消息,如果不是,它将创建一个新的批处理列表。
如果日期相同,时间应该不同。
现在我的逻辑是, 我将第一个 new_start_date 与exist_start_date 和exist_end_date 进行比较,如果在两者之间找到日期,那么它将检查时间。
到目前为止,它一直在进行比较。即使它正在检查时间,但如何从那里退出进程并调用 JSON?因为从那里我的 JSON 不起作用。
我从那里添加了"echo "time not match";" 我无法调用 JSON 我在网络选项卡上获取输出。
我得到了输出
enter 1enter 2{"error":true,"msg":"Batch Created"}time not match
你能帮我解决这个问题吗?
$id = $this->input->post('venue_id');
$venue_id = implode(',',$id);
$activity_list_id = $this->input->post('activity_name');
$new_batch_start_date = date('Y-m-d',strtotime($this->input->post('start_date')));
$new_batch_end_date = date('Y-m-d',strtotime($this->input->post('end_date')));
$new_batch_start_time = $this->input->post('start_time');
$new_batch_end_time = $this->input->post('end_time');
$days = implode(',',$this->input->post('days'));
//print_r($days);
if($new_batch_start_date >= $new_batch_end_date)
{
$response['error'] = false;
$response['msg'] = "End Date Should be Greater than Start Date";
echo json_encode($response);
return false;
}
//convert in Time Format
$new_batch_start_time = strtotime($new_batch_start_time);
$new_batch_end_time = strtotime($new_batch_end_time);
$venue = $this->input->post('name');
$data = array(
'activity_list_id' => $this->input->post('activity_name'),
'batch_venue_id' => $venue_id,
'batch_name' => $this->input->post('batch_name'),
'start_date' => date('Y-m-d',strtotime($this->input->post('start_date'))),
'end_date' => date('Y-m-d',strtotime($this->input->post('end_date'))),
'start_time' => $this->input->post('start_time'),
'end_time' => $this->input->post('end_time'),
'total_capacity' => $this->input->post('total_capecity'),
'batch_status' => 1,
'created_by' => trim($this->session->userdata['login_data']['user_id']),
'created_date' => date('d-m-Y h:i:s A'),
'batch_days' => $days
);
$get_batch_details = $this->Batch_model->fetchBatches();
if(!empty($get_batch_details))
{
foreach ($get_batch_details as $rows)
{
$exist_batch_start_date = $rows->start_date;
$exist_batch_end_date = $rows->end_date;
$batch_time1 = strtotime($rows->start_time);
$batch_time2 = strtotime($rows->end_time);
$batch_venue_id = explode(',',$rows->batch_venue_id);
$common_venue_id = array_intersect($id,$batch_venue_id);
//print_r($common_venue_id);
if($common_venue_id)
{
echo "enter 1";
//if new batch start date between existing batch start date
if($exist_batch_start_date <= $new_batch_start_date && $exist_batch_end_date >= $new_batch_start_date ){
echo "enter 2";
if($batch_time1 <= $new_batch_start_time && $batch_time2 > $new_batch_start_time){
$msg = "Other Batch Alredy Running On from Date $batch_start_date to $exist_batch_end_date on Time : $batch_time1 to $batch_time2.
Please Change Time Slot or Start And End Date";
$response['error'] = false;
$response['msg'] = $msg;
echo json_encode($response);
exit;
}
else{
$result = $this->Batch_model->createBatch($data);
echo "time not match";
print_r($result);
}
break;
}
//if date is different
else
{
$result = $this->Batch_model->createBatch($data);
}
}else
{
$result = $this->Batch_model->createBatch($data);
}
}
}
//first time creating batch
else
{
$result = $this->Batch_model->createBatch($data);
}
莫贝尔
function createBatch($data){
if($this->db->insert('batch_list',$data))
{
$response['error'] = true;
$response['msg'] = "Batch Created";
echo json_encode($response);
}
else
{
$response['error'] = true;
$response['msg'] = "Failed to Create Batch";
echo json_encode($response);
}
}
function fetchBatches()
{
$result = $this->db->where(['batch_list.batch_status'=>1,'activity_list.act_status'=>1])
->from('batch_list')
->join('activity_list','activity_list.activity_id = batch_list.activity_list_id')
->get()
->result();
return $result;
}
Ajax
success: function(response){
var data = JSON.parse(response);
if (data.error == true){
swal({
title: "Success",
text: data.msg ,
type: "success"
}).then(function(){
location.reload();
}
);
} else {
swal({
title: "Warning",
text: data.msg ,
type: "warning"
});
}
}
你能帮我解决这个问题吗?
【问题讨论】:
-
谁能帮我解决这个问题?
-
发布您的
fetchBatches模型 - 我在您的代码中看不到任何您实际从管理员那里检索开始和结束日期的内容... -
@sintakonte,是的,我在模型部分进行了更新。请检查一下
-
@sintakonte,我得到了输出。即使最后一个其他条件也有效。即使我在第一个 else 中得到输出,但无法从第一个和第二个 else 将 JSON 发送到 ajax
-
我不明白......我引用你的话:
then should enter the start date and end date and start time and end time then it will check管理员输入的那些日期在哪里?你从来没有真正访问过它
标签: php jquery json html codeigniter-3