2017-10-18 134 views
0

我試圖做一個ajax調用,並顯示一個div類內的html部分。爲此,我採用了以下方式。ajax響應後腳本不加載

$.ajax({ 
    type: "get", 
    url: "{{url('searchByCheckbox')}}", 
    dataType: 'html', 
     success: function(html) 
     { 
      $(".infinite-scroll").html(html) 
     } 
}); 

但問題是存在的是我想,當我第一次做AJAX調用它沒有加載到加載HTML部分中的腳本,但對於第二個它的加載腳本。 假設這樣的HTML響應:

<script> 
    alert() 
</script> 
// html 

我如何使它發揮作用? 我把腳本放在html頁面的上方,這是我得到的迴應。

(那些誰是標記了一個問題,重複至少應該我想要什麼看,他們想要的東西)

+0

你試過'$(「。infinite-scroll」).text(html)'? – ricky

+1

@ricky,這將顯示爲純文本的HTML。 – Mouser

+0

你是否收到你的HTML請求?據我瞭解,你得到的迴應,但腳本里面你反應HTML不起作用,對嗎? – Krusader

回答

0

我敢肯定的是,錯誤是因爲劇本的發生,因爲你關內的</script>標籤HTML。

最好的解決辦法是從你的ajax調用返回的數據作爲json

爲了做到這一點,你應該:

1-添加dataTypeajax參數爲如下:

$.ajax({ 
    type: "get", 
    dataType: "json", 

2-在處理ajax調用的php文件中,必須按照以下方式將值恢復爲json:

假設目前你正在做以下幾點:

echo $html 

你應該改變它匹配下面:

$retArr = array(
    "html"  => $html, //Your html code without the javascript function 
    "jsFunc" => $jsFunc //Your java script function parameters 
) ; 
echo json_encode($retArr) ; 

然後你ajax success必須爲以下:

success: function(data) 
    { //You can access all the object parametes by calling the object name `data` followed by a dot `.` and then by the parameter key 
     data.jsFunc // Your javascript function params 
     $(".infinite-scroll").html(data.html) ; 
    }