2013-07-02 42 views
0

以下是我正在處理的內容...我的背景php腳本需要執行javascript。怎麼樣?

某些javascript(我們稱之爲'apples.js')在客戶端執行,並且我希望在該javascript內執行的操作之一是使用Ajax在後臺運行一個php腳本。這很簡單。

PHP腳本,我用是基於了與數據字段一個PHP頁面,並在其中保存數據的結束到JS函數調用的工作。 (讓我們把這個其他js文件稱爲'bananas.js')我想通過將數據從apples.js傳遞到php文件來填充背景php文件的字段。我的dillema是我的php文件最後需要在bananas.js中執行一個函數,但是如果PHP文件在後臺運行,我認爲這不會起作用。很明顯,我必須通過除了onclick之外的其他方法調用bananas.js函數,但即使如此,我不認爲JavaScript可以在後臺運行。 這是正確的嗎?有沒有簡單的方法來處理這個問題?

我想最壞的情況下,我將不得不將bananas.js的函數調整爲apples.js並跳過PHP中介腳本。我希望我可以避免這種情況,因爲我寧願在這個軟件的現有框架內工作,並且保持簡單(也不關心編程效率;該軟件正在作爲我公司的私人門戶的一部分開發) 。

+0

「我不認爲JavaScript可以運行在背景中「 - 我不明白這是什麼意思。 JavaScript是基於_event_的。這裏有實際的_navigation_嗎? (也就是說,以傳統方式切換頁面?)。我不確定我完全理解了這個問題,而且我有點困惑。你介意詳細說明該程序的流程嗎? (如用戶點擊X,一個Ajax發送到...) –

+0

的Http工作原理如下:您從瀏覽器進行reuest服務器返回的東西或者不是。如果還有什麼回來了,不會再有更多的客戶端的東西執行 – mplungjan

+0

你總是可以添加像''在由php生成的內容的結尾,當它看到由'AJAX'完成的請求時。 – Cthulhu

回答

0

你爲什麼不只是使用一個回調您的AJAX方法。

如果你正在使用jQuery ...

apples.js

$.ajax({ 
    type: 'POST', 
    data: { 
     val1: 'one', 
     val2: 'two' 
    }, 
    success: function (data) { //data is what is being returned by the .php script 
     //now call your bananas.js function and pass in your data 
     callBananas(data); 
    }, 
    error: function (jqXHR) { 
     console.log(jqXHR); 
    } 
}); 

bananas.js

var callBananas = function(data) { 
    //Do something... 
} 
+0

這就是我最終做的。 我原本想利用已存在的中介php文件,以便我可以有一個快速和骯髒的解決方案。相反,我花了幾個小時來處理所有的JavaScript。謝謝。 – user2175136

0

一般來說,從PHP調用JavaScript是不值得的麻煩。

只需重新實現在PHP函數。

相關問題