2015-12-01 2 views
0

Привет всем Я пытаюсь сделать C.R.U.D на codeigniter с Ajax, но у меня нет опыта в Ajax.Использование Ajax на CRUD в Codeigniter

Итак, сначала я сделал с добавлением функции. Его работа, но я хочу после добавления или редактирования для обновления таблицы.

Это мой модальным, что для обновления:

 <!-- Update Interview--> 
    <div class="modal fade" id="interview" tabindex="-1" role="dialog" aria-labelledby="edit" aria-hidden="true"> 
     <div class="modal-dialog"> 
    <div id="form-content"> 

    <div class="modal-content"> 

      <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span></button> 
     <h4 class="modal-title custom_align" id="Heading">Edit Your Detail</h4> 
     </div> 
      <div class="modal-body"> 
       <?php 
        echo form_open('vacancy/interview/'. $row['id'], array("class" => "no-error-margin interview", "name" => "interview" , "id" => "edit-stage")); 
        ?> 


     <div class="form-group"> 
     <label class="control-label">Type:</label> 
      <select id="classinput" tabindex="1" name="priority" class="form-control required"> 
        <option value="A">First Interview</option> 
        <option value="B">Second Interview</option> 
        <option value="B">Final Interview</option> 
      </select> 
     </div>  
     <div class="date-form"> 

     <div class="control-group"> 
     <label class="control-label" style="margin: 0 30%;padding: 7px;">When The Interview Will Be?</label> 

    <div class="container"> 
    <div class="row"> 
     <div class='col-sm-6 col-md-offset-3'> 
      <div class="form-group"> 
       <div class='input-group date' id='datetimepicker1'> 
        <input type='text' class="form-control" /> 
        <span class="input-group-addon"> 
         <span class="glyphicon glyphicon-calendar"></span> 
        </span> 
       </div> 
      </div> 
     </div> 
     </div> 
     </div> 

     </div> 

      <div class="modal-footer "> 
     <button id="uin" type="submit" class="btn btn-warning btn-lg" style="width: 100%;"><span class="glyphicon glyphicon-ok-sign"></span> Update</button> 
     </div> 
     </div> 
    <!-- /.modal-content --> 
     </form> 

    </div> 

     <!-- /.modal-dialog --> 
    </div> 
    </div> 

я попробовать с помощью следующего кода Ajax для обновления:

$("#uin").click(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "vacancy/interview/<?= $row['id'] ?>", //process 
     data: $('form.interview').serialize(), 
     success: function(msg){ 
      alert("Succeess"); 
      $("#form-content").modal('hide'); //hide popup 
     }, 
     error: function(){ 
      alert("failure"); 
     } 
    }); 
}); 

Но получить Codeigniter ошибки The action you have requested is not allowed. функции

Контроллер:

 public function interview($i) 

    { 
     $type=$this->input->post(); 
     $this->vacancies->update_interview($type, array("id" => $id));    
    } 

и модель

public function update_interview($i) 
{ 
    $this->db->insert("interviews", $i); 
} 

Можете ли вы сказать мне, где я ошибаюсь?

+1

вы можете сократить ваш блок кода? никто не успел прочитать 1000 строк кода – Lino

+0

, пожалуйста, удалите ненужный код и опубликуйте, где вы думаете, что получаете ошибку, и если вы знаете ошибку, разместите ее в своем вопросе. также прочитайте раздел о SO для того, чтобы задать вопрос –

+0

проверить сейчас коротко –

ответ

1

Для ошибки

The action you have requested is not allowed

у вас есть защита CSRF включена $config['csrf_protection'] = TRUE;.

Попробуйте отключить это в файле config.php и посмотрите, работает ли он. В общем, вы должны использовать CSRF в целях безопасности в любом случае. Чтобы реализовать это правильно, вы должны добавить токен csrf к своим данным ajax post, чтобы Codeigniter мог видеть и проверять каждую форму и каждый сделанный вами запрос ajax.

Простой пример добавления CSRF к вашему AJAX заключается в следующем:

var cct = $.cookie('<?php echo $this->config->item("csrf_cookie_name"); ?>'); 
var request = $.ajax({ 
      url: "/action/doaction", 
      type: "POST", 
      data: { '<?php echo $this->security->get_csrf_token_name(); ?>': cct } 
     }); 
+0

Полезно знать спасибо, теперь должен узнать, как получить токен CSRF –

+1

Если это решило ваш вопрос, подумайте о принятии этого в качестве ответа – Relequestual

+0

no its не sloving –

Смежные вопросы