2016-09-24 18 views
0

私はログインフォームを持っており、jQuery/Ajaxを使用してこのフォームを検証し、json応答を取得しています。検証が完了した後にページをリダイレクトする方法は?

この形式は、すべての検証が行われているときに、私は別のページにリダイレクトしたいadd-data.php

と呼ばれるPHPページを呼び出しています。 Successfully logged!テキストの後:

if($msg['error'] === false) {   
    $msg[] = '<b>Successfully logged!.</b>';    
} 

私は

setTimeout(function() { 
    window.location = <?php echo "\"{$site_url}\""; ?>       
}, 1000); 

を使用しますが、リダイレクトありません!

完全なリダイレクトコード(動作しない):

if($msg['error'] === false) {   
    $msg[] = '<b>Successfully logged!.</b>';    
    ?> 
    <script type="text/javascript"> 
    setTimeout(function() { 
       window.location = <?php echo "\"{$site_url}\""; ?>       
      }, 1000); 
    </script> 
    <?php 
} 

更新:success:一部の作品にあなたのロジックは、あなたがこのようにそれを処理する必要があることを考慮すると

$("#add_data").submit(function(e) {   
    e.preventDefault(); 
    var button_name = $("#button_name").val(); 
    var formData = new FormData(this); 
    $.ajax({ 
     url : url+'add-data', 
     data : formData, 
     dataType : 'json', 
     type : 'POST', 
     cache:false, 
     contentType: false, 
     processData: false, 
     beforeSend : function() { 
      $("#submit_button").val("Loading..."); 
      $("#submit_button").prop('disabled', true); 
      $('#form_result').show(); 
     }, 
     success : function (result) { 
      $("#submit_button").val(button_name); 
      $('#form_result').html('');      
      $("#submit_button").prop('disabled', false); 
      $.each(result, function(key, value) { 
       if(key !== 'error' && result.error == true ) { 
        $('#form_result').append('<div class="alert alert-danger">'+value+'</alert>'); 
       } else if (key !== 'error' && result.error == false) { 
        $('#form_result').append('<div class="alert alert-success">'+value+'</p>'); 
        $('#form_result').delay(3000).hide('slow'); 
        $("#submit_button").val(button_name);      
        $("#submit_button").prop('disabled', true); 
       }       
      });     
     }, 
     error: function(xhr, textStatus, errorThrown) { 
      $('#form_result').append('<p class="alert alert-danger">Somethig is wrong!</p>'); 
      return false; 
     }, 
    }); 
}); 
+0

を助け

window.location.replace(result.redirectUrl); 

・ホープエラーメッセージの内容をお知らせください。 –

+0

実際それは私の..私のカスタムエラーメッセージを示しています。それは何とかリダイレクトしていません! –

+0

この 'setTimeout'スクリプトはどこに置いたのですか?ページの一番下にありますか? – Sasikumar

答えて

-1

} else if (key !== 'error' && result.error == false) { 
       $('#form_result').append('<div class="alert alert-success">'+value+'</p>'); 
       $('#form_result').delay(3000).hide('slow'); 
       $("#submit_button").val(button_name);      
       $("#submit_button").prop('disabled', true); 
       window.location.replace("http://theredirectpage.com"); 
      }  

redirする必要がある場合電気ショック療法、あなたの結果配列でそれを返し、その後、リダイレクト呼び出しに値を挿入する必要があり、PHPファイルによって生成されたURL、このようなものに:あなたが話した場合、それが役立つだろう

関連する問題