Модальное поле не закрывается при успешном возврате AJAX

0

У меня есть модальное окно, которое появляется, когда экран идеально подходит в течение 3 минут. Он запрашивает ввод PIN-кода, и на нем будет нажата кнопка "Продолжить" после нажатия PIN-кода. При использовании этой кнопки "Продолжить" вставка создается в таблице базы данных. Теперь моя проблема заключается в том, чтобы ввести PIN-код и нажать кнопку "Продолжить", модальная не скрывает и не закрывает себя. Хотя вставка базы данных выполнена, но модальная не скрывает. Что может быть неправильно в этом. Любое предложение будет очень полезно. Мой код,

 <div class="modal fade" id="myModal"  role="dialog" data-backdrop="static" data-keyboard="false">

    <div class="modal-dialog">

      <!-- Modal content-->

<form name="frmActive" id="frmActive" action="" method="post">      
      <div class="modal-content" style="height:250px;">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Ideal Time activation</h4>
        </div>
        <div class="modal-body">
          <p>Please enter activation <b>PIN</b><font color="red">*</font><br>

          <p id="msg" style="color:#F00;"></p>
          <input type="password" name="pin" id="pin" value="" maxlength="4"  onKeyUp="checkNumber(this)"  class="form-control" placeholder="Enter Pin">
          <input type="hidden" id="inactiveTime">
          <p style="font-size:11px"><b><font color="red">*</font><font color="grey"><b>PIN</b><i> is mentioned in your welcome email.</font></i></b></p><br>

        </div>
        <div class="modal-footer">

       <button type="button" id="btnSubmit" name="submit" value="submit" class="btn btn-success"><i class="glyphicon glyphicon-floppy-disk"></i> Continue</button> 
       <input type="hidden" id="module_id" value="<?php echo $moduleId ; ?>">
       <input type="hidden" id="chapter_id" value="<?php echo $chapterId ; ?>">

        </div>
      </div>
</form>      
   </div>
  </div>
jQuery("#btnSubmit").on("click", function(){

    var pin             =   jQuery("#pin").val();
    var chapter_id      =   jQuery("#chapter_id").val();
    var module_id       =   jQuery("#module_id").val();
    var nowDate         =   jQuery.now();
    var inactiveTime    =   jQuery("#inactiveTime").val();
    var seconds         =   (nowDate - inactiveTime) / 1000;

    var formData    =   new FormData();
        formData.append("pin", pin);
        formData.append("seconds", seconds);
        formData.append("module_id", module_id);
        formData.append("chapter_id", chapter_id);

      $.ajax({
        url: "processActivation.php",
        type: "POST",
        data: formData,
        processData: false,
        contentType: false,

        success: function(result){          


           if(result['status'] == 'active')

            {

                jQuery('#myModal').modal('hide');
            }
            else
            {

                $("#msg").html(result) ;

            }

        }
      });

});

И processActivation.php,

<?php
$uid        =   $_SESSION['session_user_id'];
$dobCheck   =   $db->idToField("tbl_user", "dob", $uid);
$dob        =   explode("-", $dobCheck);

$pin            =   $_REQUEST['pin'];
$moduleId       =   $_REQUEST['module_id'];
$chapterId      =   $_REQUEST['chapter_id'];
$time_taken     =   $_REQUEST['seconds'];
$created        =   date("Y-m-d h:i:s");
if($pin != $dob[0])
{

    echo "Please enter valid PIN."; die;
}
else
{

    $dataactivation =   array("user_id"=>$uid, "module_id"=>$moduleId, "chapter_id"=>$chapterId,"time_taken"=>$time_taken, "created"=>$created);
    $db->query_insert("tbl_activation", $dataactivation);   


  header('Content-Type: application/json', true, 200); 
  echo json_encode(array('status' => 'active')); 
  exit(); 
}

?>  

Я хочу знать, если

header('Content-Type: application/json', true, 200); 
      echo json_encode(array('status' => 'active')); 
      exit();

это правильный путь? Поскольку все вышеперечисленные операции выполняются правильно, и на этом console.log(result) ничего не отображается. Что-то не так с этими двумя строками. Очень полезно, если кто-то указывает на ошибку в этом.

  • 0
    какую проблему вы получаете
  • 0
    Модальное поле при успешной отправке PIN-кода не скрывается и остается. @GufranHasan
Показать ещё 4 комментария
Теги:
modal-dialog

3 ответа

0

Используйте функцию hide из jQuery.

jQuery('#myModal').hide();

Поскольку я знаю, что modal('hide') используется для модальных модальностей.

  • 0
    Спасибо за время. Но извините, это не работает. Модал все еще остается. Можно ли что-то еще сделать?
  • 0
    Вы уверены, что #myModal ?
Показать ещё 6 комментариев
0

использование

jQuery('#myModal').toggle().click();

вместо

jQuery('#myModal').modal('hide');
0

Быстрое исправление, возможно, вместо того, чтобы делать
echo json_encode(array('status' => 'active')); и if(result['status'] == 'active')
делать
echo "active"; и if(result == 'active')

  • 0
    Спасибо за ваше время, но нет, это тоже не работает. Что-то еще можно сделать ??
  • 0
    Извините, но и в этом нет успеха. На console.log (результат) я получаю ReferenceError: trim не определен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню