0

イベントを追加してからページを更新して別のイベントを追加すると正常に機能しますが、イベントを追加してから、最初にページを更新せずに別のイベントを追加すると、同じタイムスロットに保存されます。

一部の変数はページが更新されるまで値を保持していると思いますが、どの変数がエラーであるかわかりませんでした。

$ .ajax呼び出しを使用して、データベースからデータを送信、取得、および変更しています

これがコードです:

javascript側:

     'eventNew':function(calEvent, $event) { 
calendar_new_entry(calEvent,$event); 
}
});
});

function calendar_new_entry(calEvent,$event)
{
            var ds=calEvent.start;
            var df=calEvent.end;

            var body = $('#calendar_new_entry_form_body').val(''); 
            var title = $('#calendar_new_entry_form_title').val('') ;


        $("#calendar_new_entry_form").dialog({ 

        autoOpen: false, 
        height: 440, 
        width: 550, 
        modal: true,
        close: function()   // onClose
            {
                $('#calendar_wrapper').weekCalendar('removeUnsavedEvents');
            },
        buttons: 
        {
            'Save': function() 
            {



                var body = $('#calendar_new_entry_form_body').val(); 
                var title = $('#calendar_new_entry_form_title').val() ;

                var data = {body: body,title:title,start:ds.getTime()/1000,end:df.getTime()/1000};


                $.ajax({
                                    type:       'POST',
                                    url:        baseUrl+'calendar/add',
                                    data:       data,
                                    dataType:   'json',
                                    success:    function(json)
                                    {
                                        if (json.status == "success")   
                                        {
                                            alert('done');

                                            $("#calendar_wrapper").weekCalendar("refresh");
                                        }
                                    }
                                                                          });





                $(this).dialog('close');

}

これはphp側です:

                        function add()
                  {
        $start = date('c',(int)($this->input->post('start')+3600));
        $end = date('c',(int)($this->input->post('end')+3600));
        $title = $this->input->post('title');
        $body = $this->input->post('body');

        $data = array(
                   'start' => $start,
                   'end' => $end,
                   'title' => $title,
                   'body' => $body

                );

                if($this->events->add($data))
                {

                    $return = array(

                    'status'    =>      'success',
                    'message'   =>      'Event has been saved'

                );
                // print out a JSON encoded success message
                echo json_encode($return);


            }
            else
            {


                $return = array(

                    'status'    =>      'failed',
                    'message'   =>      'Failed to save this event'

                );

                // print out a JSON encoded error message
                echo json_encode($return);


            }


    }

また、codeigniterを使用していることを忘れたため、前のコードはコントローラーであり、このコードはモデル用です。

         function add($data)
              {
               $this->db->insert('events', $data);
            return $this->db->insert_id();
              }

助けてくれてありがとう

4

0 に答える 0