2010-03-03 71 views
1

我觀看Appcelerator的鈦視頻教程,我看到他們用類似語法PHP在HTML <Script>

<script type="text/php"> 
... 
global $window, $document; 
mysql_connect(...) or die $window->alert('...'); 
$document.getElementById('xxx'); 

... 
</script> 

所以我有幾個問題。如果我使用<?php ?> 而沒有設置$window$document - 它們不會是「未設置」變量嗎? 我想我可以在PHP中使用(基本的,而不是jQuery)Javascript函數,如alertgetElementById()

+1

請格式正確的代碼。 – Strae 2010-03-03 14:57:14

+0

我應該怎麼做? – iceangel89 2010-03-04 04:51:49

回答

2

在這種情況下,它們只能是「未定義」,而不是「未定義」。但是,它們具有「全局」前綴,所以有可能在其他代碼中定義它們,甚至可能在您的文件之外。

$ window-> alert(...)可能會輸出讀取爲javascript警報或類似函數的HTML。

您不能在PHP中使用javascript alert(),因爲它不是PHP函數。

0

就PHP而言,沒有JavaScript的文本。

$window$document只是PHP中別處定義的變量。 $window似乎是一些輸出文本的方法(碰巧包含JS語法的文本),而$document看起來像是一個字符串。

如果它們尚未定義,它們將是未定義的。

你可以寫任何你喜歡的JS函數作爲普通文本。如果你想使用一個對象來生成它,那麼你需要有一個知道該功能的對象。

+0

沒有JavaScript - 只有Zuul! – Stephen 2010-03-03 15:22:43

0

對於一個普通的Web應用程序,您顯示的代碼毫無意義,因爲PHP在服務器上運行,而JavaScript在客戶端上運行。 PHP用於構建HTML代碼,該代碼形成DOM功能(如getElementById())的JavaScript函數,因此在PHP代碼中使用它們是完全不可能的。

但是,粗略的調查顯示,Appcelerator Titanium是一種運行時,它意味着完全在客戶端上使用Web技術運行應用程序。在這樣的運行時中,PHP代碼可能在已經完成的HTML DOM的上下文中運行,並通過類似JavaScript的橋接函數與其交互。但這與PHP通常的工作方式完全不同。