2013-05-18 40 views
0

我有一行JavaScript,我會很感謝幫助。JavaScript內的PHP

req.open("GET", 'update.php?id=<?php $id ?>', true); 

其中$ id = 12345,我想獲取update.php?id = 12345的內容。

在這個JavaScript裏面使用PHP似乎不適合我。

有什麼建議嗎?

+1

嘗試''。但是你應該考慮從PHP中分離JS。這將成爲一個真正的快速混亂... – elclanrs

+0

@elclanrs這沒有奏效。 :( – user2388347

+2

請確保你已啓用短標籤或只是'<?php echo $ id?>'。問題是你實際上沒有打印任何東西。 – elclanrs

回答

4

首先,確保您確實在一個PHP文件中,或者讓您的服務器配置爲處理您使用的任何文件擴展名。

然後,您可以將數據直接回顯到JavaScript中。爲了獲得最佳兼容性並避免潛在的XSS漏洞,請始終對數據進行JSON編碼。

req.open('GET', 'update.php?id=' + <?php echo json_encode($id); ?>, true); 

就個人而言,我更喜歡有一個由PHP分配的變量塊。這使您的JavaScript更清潔。

<?php 
    $options = new stdClass(); 
    $options->id = 12345; 
    $options->dinnerSelection = 'pizza'; 

    echo 'var options = ', json_encode($options), ';' 
?> 

// Then later on in your JS... 
req.open('GET', 'update.php?id=' + options.id, true); 
2

你有一些方法可以做到這一點。 第一個讓你的JavaScript文件以.php文件(是你需要carrefull包括它,而不是把它在開始文件的鏈接。

第二個,在PHP中,你可以寫

<?php 
echo ' 
<script type="text/javascript"> 
    id="'.$id.'"; 
</script>'; 
?> 

有了這個,你定義在JavaScript中的全局變量誰拿物有所值 然後,你就必須在這之後到寫道:

req.open("GET", 'update.php?id='+id, true); 

,如果你要改變ID科目編號後的頁面,你只需要改變id javascript值

1

我相信這將是一個非常糟糕的設計決定,以這種方式使用PHP格式化您的JavaScript。您應該提供更多關於您要做什麼的信息,因爲我幾乎可以向您保證有更好的方法來做到這一點。點擊後

<div id="someExample"> 
    <a href="http://www.whocares.com" data-id="12345">Item 12345</a> 
</div> 

然後用unobtrusive javascript訪問項目: 如果你正在嘗試,例如,做一個URL(清楚)的JavaScript調用,然後將數據應用到HTML文檔中的屬性,如有必要取消鏈接的默認操作。這種方法的好處很多 - 您可以編寫可重用的代碼,並且您沒有額外的PHP解析功能來處理JavaScript,這在以後很難理解。

通過PHP將JS硬編碼數據添加到javascript對象是一個非常糟糕的設計決策。如果您需要更多幫助,請讓我知道,但請先嚐試研究它!