javascript
  • php
  • jquery
  • ajax
  • 2017-10-06 12 views 1 likes 
    1

    id = "render"のダウンロードボタンがあるphpファイルindex.phpがあります。私はサーバーにリクエストを送信するためにajaxを使用しています。使用JSコードIMがある:望ましくないページリダイレクト

    $('#render').click(function(e){ 
     
        $('html,body').animate({ scrollTop: 0 }, 1000); 
     
        var url='render.php'; 
     
        $.showLoading(); 
     
        $.ajax({ 
     
          type: "POST", 
     
          url: url, 
     
          data: '', 
     
          success: function(data){ 
     
           $.hideLoading(); 
     
          } 
     
         }); 
     
        });

    render.phpファイルは、ユーザデータを含むPDF文書を生成します。 mpdf PHPライブラリを使用してpdf imを生成するにはそしてrender.phpファイルのコードは次のとおりです。

    <?php 
    session_start(); 
    if(!empty($_SESSION['template'])){ 
        $template=$_SESSION['template']; 
        ob_start(); 
        require_once("resumeTemplates/$template.php"); 
        $template = ob_get_clean(); 
    
        require_once 'mpdf/vendor/autoload.php'; 
    
        $mpdf = new mPDF(); 
        $mpdf->WriteHTML($template); 
        $mpdf->Output("resume.pdf","D"); //sends pdf file to browser 
    } 
    ?> 
    

    ダウンロードボタンをクリックしたときに問題がページがrender.phpにリダイレクトされている、しかし、私は、ユーザーがindex.phpのに滞在したいです。私も追加しようとしました

    header("location:index.php"); 
    

    しかし、このページはindex.phpにリダイレクトされませんでした。それはrender.phpにとどまります。

    ダウンロードボタンのHTMLコードは次のとおりです。あなたがボタンをクリックすると、デフォルトのイベントを防ぐために必要

    <a href="render.php" id="render" class="btn btn-primary btn-round">Download</a>

    +0

    が送信ボタンをクリックされていますhref="#"する必要がありますか?もしそうなら、あなたは 'preventdefault();'を使う必要があります。 –

    +0

    ボタンであるHTMLコードを表示しますか? –

    +0

    問題は解決されました。主な問題は、ボタンのHTMLコードにありました。 href = "render.php"をhref = "#"に置き換えただけです。すべてのローカルサーバー上で正常に動作していた前に、このソリューションを見つけることができませんでした – Mayank

    答えて

    0

    あなたは

    <a href="#" id="render" class="btn btn-primary btn-round">Download</a> 
    
    0
    $('#render').click(function(e){ 
        $('html,body').animate({ scrollTop: 0 }, 1000); 
        var url='render.php'; 
        $.showLoading(); 
        $.ajax({ 
          type: "POST", 
          url: url, 
          data: '', 
          success: function(data){ 
           $.hideLoading(); 
          } 
         }); 
        e.preventDefault(); 
        }); 
    
    0

    。このようなあなたのJSコードを変更し、それが動作するはずです:それは前にリダイレクトされますので、

    $('#render').click(function(e){ 
    
        e.preventDefault() // this prevents page from redirect 
    
        $('html,body').animate({ scrollTop: 0 }, 1000); 
        var url='render.php'; 
        $.showLoading(); 
        $.ajax({ 
          type: "POST", 
          url: url, 
          data: '', 
          success: function(data){ 
           $.hideLoading(); 
          } 
         }); 
        }); 
    
    関連する問題