2012-12-16 75 views
0

例如,這是我的PHP代碼:如何將此PHP代碼與HTML和Javascript結合使用?

<?php 

if($country_code == 'US') 
{ 
     header('Location: http://www.test.com'); 
} 

else 
{ 
     header('Location: http://www.test.com/'); 
} 

?> 

我試圖使用Javascript代碼進行跟蹤,它是</body>標籤上面。

我曾嘗試PHP代碼HTML結合不同的方式,我都試過分開放置HTML的PHP也低於,一個例子:

<html> 
<head></head> 
<body> 
    <?php 

    ?> 
<script></script> 
</body> 
</html> 

我最遠的是,它跟蹤的點擊,但它沒有重定向給我這個錯誤:

`Warning: Cannot modify header information - headers already sent by` 

將不勝感激任何建議和幫助,謝謝!

+1

如果您已經開始輸出文檔,那麼您不能使用php的'header',您必須使用不同的方法重定向(即JavaScript的'window.location.href')。 –

+0

在某種意義上,PHP從上到下按順序工作。一旦DOM開始呈現內容,PHP不僅可以停止,反轉,放置您的標題,然後重建,如果有意義=]將該PHP放在頁面的頂部,然後從那裏開始工作。 –

+0

'$ country_code'從哪裏來? – Martijn

回答

0

你必須嘗試一些類似下面的軌道:在您的索引頁檢查了美國參數的值

<?php 

if($country_code == 'US') 
{ 
     header('Location: http://www.test.com/?us=yes'); 
} 

else 
{ 
     header('Location: http://www.test.com/?us=no'); 
} 

?> 

然後。另外,應注意沒有任何輸出應該在頭函數之前打印作廢警告:

Warning: Cannot modify header information - headers already sent by

1

把PHP重定向代碼在文檔的開頭輸出任何東西之前。請檢查?>標記之後和<?php標記之前的空格,因爲這些標記將被打印出來,並且將爲此發送響應標題,因此您將無法修改標題以重定向。

0

問題是PHP在JavaScript之前運行。所以你需要在JavaScript中獲取PHP變量。

<?php 
// your normal code here, like connection to DB 
?> 

<script>var test = <?php> echo $thatVariable; <?> </script> 
0

您不能在php的header()標記之前向客戶端發送輸出。 因此,您可以生成一個重定向頁面,通過js獲取國家信息並將其發送到php(使用例如表單提交)。之後,您可以通過php頭重定向到accoording頁面()

0
<?php 
if($country_code === 'US'){ 

    echo "<script> window.location.href='http://www.test.com1'</script>"; 

} 
else{ 

    echo "<script> window.location.href='http://www.test.com2/'</script>"; 

} 

?>