2013-07-25 56 views
0

晚上好互聯網的人民;)有沒有辦法在javascript中運行輸出php動作到變量?

  1. 我有一系列的Javascript命令,將設置用不同的方法變量。
  2. 從一個XML文件中,我輸出一個URL和站點名稱的內容到溢出表。
  3. 這將創建超鏈接與工具提示等輸出到頁面中心的框架。

我被困在以下方面:

var ipaddress = [OBTAIN IPADDRESS OF SITE FROM XML FILE???]; 

從XML文件,我想運行的代碼PHP部分,以獲得該網站的ip地址,將結果輸出到一個表格單元格然後移至XML文件中的下一條記錄。

這是PHP,我想聘請來獲得各種網站ip地址(其中精美的作品):

<?php 
    $ipInfo = dns_get_record('google.co.uk', DNS_A); 
    $ip = $ipInfo[0]['ip']; 
    print_r($ip); 
    ?> 

所以主要的問題是這樣的....我怎麼能運行上面的PHP代碼讀取XML文件並設置IPAddress變量後?我有道理:S

+0

AJAX是您的選擇。你不能直接運行它,你會向另一個頁面發出請求以獲取該值,另外,你可以使用php回顯類似'<?php echo「var ipaddress ='」。$ ipaddress。「';」; ?> –

+0

您正在尋找AJAX(異步Javascript和XML)。它允許您異步地向服務器發送請求並從服務器接收數據,即不需要重新加載頁面。 http://www.w3schools.com/ajax/ – Dolchio

+0

小心W3schools,他們的一些文檔是假的。 http://www.w3fools.com/試試Mozilla開發者網絡https://developer.mozilla.org/zh-CN/docs/AJAX –

回答

0

這很簡單。在PHP中,只是做:你想傳遞給JavaScript

header('Content-Type: application/javascript'); 
echo 'var ipaddress=', json_encode($ip), ';' 

始終JSON編碼的任意數據,使逃逸自動發生的爲您服務。

現在,您必須以某種方式加載此腳本。一種簡單的方法是將其放入HTML中:

<script src="yourScript.php"></script> 

要清楚的是,您並未從JavaScript運行PHP。您正在使用PHP來動態創建JavaScript。

+0

但在腳本示例中,我表明它使用非變量google.co.uk URL。但是,我希望它從XML文件中獲取URL。所以會有一個組合: 1)讀取具有URL標記的第一個條目。 2)運行它對PHP腳本。 3)將結果輸出到一個變量。 4)讀取第二個條目...等等。 我有83個網站,我想閱讀。因此,它讀取第一個和輸出到變量,然後寫入表格單元格,然後寫入第二和第三和第四等。 – Echelon

+0

您的意思是什麼?如果您有一組數據,則只需輸出數據數組。 'echo'var yourData =',json_encode($ someArrayHere),';';' – Brad

0

只是爲了重申Fire-Dragon-DoL的評論,可能會幫助您入門。

<head> 
... other stuff 

<script type="text/javascript"> 
<?php 
    $ipInfo = dns_get_record('google.co.uk', DNS_A); 
    $ip = $ipInfo[0]['ip']; 
    echo 'var ipAddress = "' . $ip . '";'; 
?> 
</script> 
</head> 
<body> 
.... all your existing stuff 

所以你基本上是從服務器上運行的PHP代碼中創建JavaScript的,但由於其放置在文檔中運行,就像你曾經手工編寫成HTML文檔的頭部。

變量ipAddress將可用於所有其他JavaScript的全局放置。所以你可以在這個新的部分之後加載的任何其他javascritp中使用它。

+0

我知道......我覺得有些東西只是在我腦中點擊了!大聲笑 我已經將您的腳本添加到測試頁面,然後添加:在html正文中,並且ys知道什麼.........它工作。好的,接下來是我試圖找到一種閱讀XML的方式。但是有一個問題,我注意到上面的腳本沒有顯示函數。就好像我將php作爲一個JavaScript中的函數對待,並在需要時調用它,它會工作,我想知道....嗯,會嘗試。 – Echelon

相關問題