2016-08-04 18 views
0

私のページ内のindex.php内の/pagesフォルダからphpページを呼び出すajaxウェブサイトを作成しました私はpainting-slider.phpページを呼び出すリンクを持っています。ajaxがajaxで成功

私は既にpainting.phpページを呼び出したときにこのpainting-slider.phpをajaxでどのように開くことができますか?

これが私のindex.phpリクエストページです:

<div id="ajax-container"> 
<?php 
    $d = "pages/"; 
    if (isset($_GET['p'])) { 
    $p = strtolower($_GET['p']); 
    if (preg_match("/^[a-z0-9\-]+$/", $p) && file_exists($d . $p . ".php")) { 
     include $d . $p . ".php"; 
    } else { 
     include $d . "404.php"; 
    } 
    } else { 
    include $d . "home.php"; 
    } 
?> 
</div> 

と、これは私のAJAX機能である:

var afficher = function(data, page) { 

    $('#ajax-container').fadeOut(250, function() { 
     $('#ajax-container').empty(); 
     $('#ajax-container').append(data); 
     $('#ajax-container').fadeIn(100, function() {}); 

    }); 
}; 

var lastRequest = null; 
if (lastRequest !== null) { 
    lastRequest.abort(); 
} 

var loadPage = function(page, storeHistory) { 
    if (typeof storeHistory === 'undefined') { 
     storeHistory = true; 
    } 


    lastRequest = $.ajax({ 
     url: "pages/" + page, 
     cache: false, 
     success: function(html) { 
      afficher(html, page); 
      if (storeHistory === true) { 
       history.pushState({ 
        'key': 'value', 
        'url': page 
       }, '', page); 
      } 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      afficher('erreur lors du chagement de la page'); 
     } 
    }); 

    return false; 
}; 

window.addEventListener('load', function() { 
    setTimeout(function() { 
     window.addEventListener('popstate', function(e) { 
      if (e.state === null) { 
       loadPage('home.php'); 
      } else { 
       loadPage(e['state']['url'], false); 
      } 
     }); 
    }, 0); 
}); 


$('.link').bind('click', function(e) { 
    e.preventDefault(); 
    var page = $(this).attr('href'); 
    loadPage(page); 
    return false; 
}); 
+2

あなたは何を達成しようとしていますか?最初のAjaxリクエストの '.success()'メソッドの中で単に新しいAjaxリクエストを行うのはなぜですか? – messerbill

+0

はい、私はpainting.phpページ内にphpインクルード関数を持つajax-container divを作り直す必要がありますか?正確にどこに私のsecondeアヤックス関数を挿入する必要がありますか? – Tiaw

答えて

2

AJAX」の簡単な例の後「ajax」:

$.ajax({ 
    url: "pages/" + page, 
    cache: false, 
    success: function(html) { 
     afficher(html, page); 
     if (storeHistory === true) { 
      history.pushState({ 
       'key': 'value', 
       'url': page 
      }, '', page); 
     } 
     $.ajax({ 
      url: otherUrl, 
      cache: false, 
      success: function(result) { 
      alert("i am the second result"); 
      alert(result); 
      } 
     }); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     afficher('erreur lors du chagement de la page'); 
    } 
}); 

サーバサイド(PHPファイル)では、何もすることは重要ではありません。あなたのajaxは、指定されたURLで見つかったスクリプトの戻り値を取得するだけです。私はそれが願っています

+1

ああ本当にそれは私が思っていたよりも簡単です、うまく働いてくれてありがとう – Tiaw