【问题标题】:After ajax success and load specific div the content disappearedajax成功并加载特定div后,内容消失了
【发布时间】:2019-09-08 16:08:30
【问题描述】:

我正在制作活动日历。添加事件后,插入数据成功后,只会加载日历的单元格。添加事件很好,但是当 div 加载时内容消失。这是我的代码:

* Ajax *

$('.savedata').on('click', function () {
                // alert('savedata');
                var testchecked = $('#testchecked').val();
                var testingcheck = $('#testingcheck').val();
                $.ajax({
                    type : "POST",
                    url  : "<?php echo site_url()?>/CalendarController/savedata",
                    // dataType : "JSON",
                    data : { testchecked : testchecked, testingcheck : testingcheck },
                    success: function(data){
                        // alert('success');
                        //console.log('asd '+data);

                        $('#events-modal').modal('hide');
                        // cal-month-box
                        // $(".cal-month-day").append(JSON.stringify(data));
                        // $(".cal-month-day").load(window.location + " .cal-month-day");
                        // $('.cal-month-day').prepend(_newData);
                        $(".cal-month-day").load(location.href + " .cal-month-day");
                    },
                    error : function(data, ajaxOptions, thrownError) {
                        console.log(data.status);
                    }
                    });
                });

* 添加数据之前 *

* 添加事件后*

* 这是 HTML *

* 控制器 *

public function savedata()
    {
        $this->load->view('calendarView');

        $this->em->form_insert();

    }

* 型号 *

function form_insert()
    {
        $abc            = $this->input->post('testchecked');

        $array = array('id' => $abc);
        $this->db->select("*");
        $this->db->where($array);
        $query = $this->db->get('dev_adkt_events_type');
        $response = $query->result_array();
        foreach($response as $res){
            $title = $res['id'];
        }


        $url            = 'URL';
        $class          = $this->input->post('testchecked');
        $start_date     = $this->input->post('testingcheck');
        $end_date       = $this->input->post('testingcheck');

        $data = array(
            'title'     => $title,
            'url'       => $url,
            'class'     => $class,
            'start_date'=> $start_date ,
            'end_date'  => $end_date 
        );

        // $this->db->insert('event',$data);
        $result = $this->db->insert('event',$data);
        return $result;

    }

希望你们能帮助我。提前谢谢你。

* 显示日历 *

控制器

public function index() {
        $this->load->helper('url');
        // var_dump($postData);
        $result['eventcatresult'] = $this->em->geteventcategory();
        $result['data'] = $this->em->getevent();
        $result['data'] = $this->em->getnotes();

        $this->load->view('calendarView',$result);
    }

* 型号 *

function getevent()
    {
        $this->db->select("*");
        $query = $this->db->get($this->event);
        if ($query) {
            return $query->result();
        }
        return NULL;
    }

【问题讨论】:

  • 我们能看到你的 HTML 吗?为什么你认为它不相关?
  • 最简单的解释是form.html(msg) 覆盖了日历的整个html。而不是特定的节点。看来您刚刚将代码更新为$(".cal-month-day").load(location.href + " .cal-month-day");,这样会更有意义。
  • 你能分享你的控制器从你开始加载日历的地方并显示保存数据功能吗
  • @M.Hemant 好的先生
  • @M.Hemant 我已经更新了我的问题,先生

标签: javascript php jquery codeigniter


【解决方案1】:

你最好改一下

$(".cal-month-day").load(location.href + " .cal-month-day");

到这里

$("#calendar").load(location.href + " #calendar");

因为每个事件都有多个 'cal-month-day',如果最后一个元素为空,则所有元素都将为空
更好地刷新所有日历

【讨论】:

  • 先生,当我使用它时,整个日历都消失了
  • 抱歉回复晚了。尝试更改此 $("#calendar").load(location.href + " #calendar");到 $("#calendarArea").load(location.href + "#calendar");并将 calendarArea id 添加到 span9 类
  • 是同一个先生。日历就消失了:(
猜你喜欢
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
相关资源
最近更新 更多