2017-02-03 31 views
0

所以我有一個PHP頁面可以加載兩種方式。它可以使用includes()或使用AJAX根據用戶需求加載第一頁的另一個頁面直接嵌入到頁面中。我的問題來自以下幾行代碼:通過Ajax加載後在html塊中調用javascript

echo "<script>"; 
    echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");"; 
    echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');"; 
echo "</script>"; 

這對直接負載很有效。不過,如你所知,AJAX在加載時不會運行JavaScript。因爲代碼只需要PHP腳本已知的動態變量,所以我不能僅僅調用AJAX函數中的函數。我想知道是否有反正告訴JavaScript在加載後運行該腳本標記的內容?

+1

你應該在ajax的'success'部分做些什麼。如果你只是迴應,你會得到的命令作爲一個字符串,你可以評估,如果有必要,否則,檢索數據回來作爲一個JSON會更聰明。 –

回答

0

把js腳本阿賈克斯完成功能

$.ajax({ 

}).done(function() { 
    <?php 
    echo "<script>"; 
    echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");"; 
    echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');"; 
    echo "</script>"; 
    ?> 
}); 

內以供參考是jQuery的AJAX API http://api.jquery.com/jquery.ajax/

有幾個選項。注counselledCount:TXT是變量後,所以它處理與$_POST["counselledCount"] 這裏您的Ajax請求訪問其頁面上的是另外一個例子:

$.post("../includes/process-results.php", {counselledCount: txt, currentPageReset: "yes"}, function(result){ 
     showAjaxResult(result); 
}); 

現在不是用ajax做,它處理Ajax請求的頁面上併發送該請求,然後將請求發送回您的腳本。

$request = "<script>"; 
$request .= "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");"; 
$request .= "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');"; 
$request .= "</script>"; 
+0

ajax無法訪問PHP變量。 – Zaper127

+0

Ajax加載代碼。原始AJAX加載時,變量不存在。我需要在Ajax運行後得到它。 – Zaper127

+0

您是否將ajax請求發送至php文件。如果是這樣,只需將它們放入會話中,然後在代碼中抓住b來處理ajax請求 –

0

所以答案是的eval()

eval(document.getElementById('slide_start').innerHTML); 

通過添加一個ID爲腳本標籤,我可以拉腳本到回調函數,然後使用eval()來執行它謝謝A. lau爲我指出了正確的道路。

相關問題