2016-07-16 2 views
1

Я работаю с ajax и php. Я хочу отображать сообщение на другой странице после успешного добавления пользователя с помощью Ajax. Я так много пробовал. Он работает, когда сначала выводит сообщение «Успех» на всплывающее и стороннее перенаправление на другую страницу. Но я хочу сначала перенаправить на другую страницу и после отображения сообщения.Ajax Redirect на новой странице и после успешного сообщения об успешном завершении

пользователя Добавить страницу:

<form action="<?php echo $action_link; ?>" method="post" id="form_user_profile" class="form-horizontal" novalidate="novalidate"> 

    <input type="hidden" id="id" name="id" value="<?php echo $id; ?>"> 

    <div class="form-body"> 
    <div class="form-group"> 
     <label class="control-label col-md-3">First Name 
     <span class="required" aria-required="true"> * </span> 
     </label> 
     <div class="col-md-4"> 
     <div class="input-icon right"> 
      <i class="fa"></i> 
      <input type="text" class="form-control" name="fname" value="<?php echo $user_db[0]['fname']; ?>"> 
     </div> 
     </div> 
    </div> 
    <div class="form-actions"> 
     <div class="row"> 
     <div class="col-md-offset-3 col-md-9"> 
      <input type="submit" class="btn green" name="submit" value="<?php echo $addupdate_msg; ?>"> 
     </div> 
     </div> 
    </div> 
</form> 

Ajax в Validate

$("#form_user_profile").validate({ 
     rules: { 
      fname: { 
       required: true 
      } 
     }, 
     messages: { 
      fname: "Please enter first name" 
     }, 
     submitHandler: function(form) { 
      $.ajax({ 
       url: form.action, 
       type: form.method, 
       data: $(form).serialize(), 
       success: function(response) { 
        if(response == 1){ 
         bootbox.alert("User has been added successfully.", function() { 
          window.location.href= "<?php echo $user_list; ?>"; 
         }); 
        } 
       } 
      }); 
     } 
}); 

Действие

if (isset($_REQUEST['submit']) && $_REQUEST['submit'] == "Add") { 

    $fname = mysqli_real_escape_string($obj->CONN, $_REQUEST['fname']);  

    $user->setfname($fname); 
    $insert = $user->insert(); 

    ob_get_clean(); 

    if($insert){ 
     echo '1'; 
     $_SESSION['msg'] = "New user has been added successfully."; 
    }else{ 
     echo '0'; 
    } 

    exit; 
} 
+0

дать одинарные кавычки в 1, если (ответ == '1') {} – JYoThI

+0

Это не должно иметь значения, потому что он использует свободное сравнение '=='. – BeetleJuice

+0

@jothi это не работает, как if (response == '1') {}. На самом деле я хочу отображать сообщение об успешном завершении на другой странице. Используя это, перенаправляйте на другую страницу, это нормально. Но не показывать сообщение об успешном завершении. –

ответ

1

Успех ро щенок появляется перед пользователь перенаправляется из следующего кода:

if(response == 1){ 
    bootbox.alert("User has been added successfully.", function() { 
     window.location.href= "<?php echo $user_list; ?>"; 
    }); 
} 

Если вы хотите, чтобы показать сообщение на новую страницу, а не просто перенаправляют пользователя

if(response == 1)window.location.href= "<?php echo $user_list; ?>"; 

На новая страница где вы посылаете клиента после успеха, показать сообщение с чем-то вроде

$(function() { 
    bootbox.alert(<?= $_SESSION['msg'] ?>); 
}); 
+0

Я установил сеанс на другой странице, но все равно не показываю сообщение об успешном завершении сеанса. –

+0

Большое вам спасибо –

1

вы можете проверить, есть ли $_SESSION['msg'] на странице, на которую вы направляете, если установлено, то alert.

Jquery:

if(response == 1){window.location.href= "<?php echo $user_list ?>";} 

Затем $user_list страница:

if(isset($_SESSION['msg'])){ 
    echo '$(document).ready(function(){ 
      bootbox.alert('.$_SESSION['msg'].'); 
     })'; 
} 

Обратите внимание, я использую одинарные кавычки, так что PHP не думает, что $ является переменной.

+0

Большое вам спасибо. –

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