2011-07-13 13 views
0

例子:Javascript變量 - > Php - > Smarty ...有可能嗎?

<script type="text/javascript"> 
    insertVideos({ 
     'block':'youtubeDiv', 
     'q':'keyword', 
     'type':'search', 
     'results':8, 
     'order':'most_relevance', 
     'player':'embed', 
     'layout':'thumbnails' 
    }); 
</script> 

我需要的是「結果」作爲一個變量來傳遞, 在過程結束時,我需要這樣的東西:{if $results != 0} 我該怎麼辦呢?

+0

將php信息傳遞給js: hornetbzz

+3

JavaScript在客戶端執行。所以執行順序是PHP - > Smarty - > JavaScript。除非你想用Ajax加載新內容並插入到頁面中,否則這是不可能的。 –

+0

正是我需要知道,如果該功能在搜索後至少返回1個結果...實際結果意味着max_results。如何驗證該功能? isset ...空......這樣的事情?請幫助 – smepie

回答

1

沒有辦法在JavaScript中訪問PHP/Smarty,因爲它們在兩個不同的世界中執行。

頁面從服務器請求。服務器執行PHP並使用Smarty生成內容。服務器將生成的HTML和JavaScript源代碼發送給客戶端。服務器現在完成了。如果收到另一個請求,它將重新開始,而不知道先前的請求。

客戶端收到HTML和javascript源並顯示。 insertVideos方法最終得到調用。此時,它不與服務器和PHP/Smarty功能交互。

從那裏,JavaScript可以使ajax請求回到服務器,或者如果我假設你只想顯示視頻,如果搜索發現一些(results > 0),你可以在javascript中進行檢查並添加/根據需要修改dom元素。

+0

好的謝謝,它已經不顯示結果,如果它找不到...問題是顯示或不顯示關於此行爲的鏈接。現在我解決了將腳本包含到另一個選項卡中而不是其分配的選項卡。 – smepie