Ajax отправить и заменить кнопку отправки с галочкой после успеха - PullRequest
0 голосов
/ 15 января 2019

Во-первых, мне совсем не повезло с отправкой ajax в среде cakephp 1.3. После успешной отправки я надеюсь, что пользователь останется на странице, а кнопка отправки будет скрыта или заменена галочкой. Я попробовал несколько вещей ... контроллер без $ action и затем функцию .click вместо подтверждения. Я также не разбираюсь в отладке js, чтобы увидеть, где это может быть не так, поэтому любые предложения приветствуются .

Возможно, "update_a" - это действие $ в контроллере панели инструментов. "функциональные приложения ($ action) {" вместо?

контроллер приборной панели

function update_a($action) {
...
switch ($action) {
        case 'save':
if (!empty($this->data)) {
// update fields in database table matching model
$this->data['Model']['submitted'] = $_POST['submitted'];
$this->data['Model']['locked'] = $_POST['locked'];
if ($this->Model->save($this->data)) {
// save form fields to other models
$this->OtherModel->saveField('form_status_id',$_POST['form_status_id']);    
$this->OtherModel->saveField('form_status',$_POST['form_status']);
}
}
}
break;
default:
    //$this->redirect("admin/index");
    $this->render("dashboard/applications");
    break;
} //case
} // end function

HTML

<body>
<form id='update_a' action='save'>
<div class='form-group'>
<input type='hidden' class='hidden' name='locked' id='locked' value='1'>
<input type='hidden' class='hidden' name='form_status' id='form_status' value='Locked'>
<input type='hidden' class='hidden' name='form_status_id' id='form_status_id' value='3'>
<input type='hidden' class='hidden' name='submitted' id='submitted' value='<?php echo date("Y-m-d G:i:s") ?>'>
</div>
<div class='text-center'>
<input name='submit' type='button' class='btn btn-default' value='Submit Form A'>
</div>
</form> 
</body>
<script>
$(document).ready(function () {

        $('#update_a').on('submit', function (e) {
        //$('#update_a').click(function (e) {
          e.preventDefault();

          $.ajax({
            type: 'POST',
            url: '/dashboard/update_a',
            data: $('#update_a').serialize(),
            success: function () {
              alert('Form A has been submitted and locked for editing');
              $('#update_a').hide();
            },
            error : function() {
            alert("Error");
            }
          });
        return false;
        });

      });
</script>
...