如果您使用JavaScript混合PHP,它總是建議檢查被髮送到瀏覽器的輸出:右鍵點擊你的網站和點擊查看源代碼!
JavaScript不關心發送給它的內容是靜態HTML,來自數據庫還是由PHP生成。如果它在輸出中,它會解析它。
如果你已經這樣做了,你會發現你的$name
變量不是echo
。
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+<? echo $name ?>+"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
但是,這會給你
<script language="JavaScript">
var url = "http://localhost:8888/uploads/"+ foo +"/output.txt";
setTimeout("top.location.href = url",1000);
</script>
這是不是有效的JavaScript,爲foo
現在是一個JS變量,而不是一個字符串。
所以,你應該有:
<script language="JavaScript">
var url = "http://localhost:8888/uploads/<? echo $name ?>/output.txt";
setTimeout("top.location.href = url",1000);
</script>
此外,傳遞一個字符串setTimeout
(或setInterval
)不推薦;針對使用eval()
同樣的原因,所以你應該結束了,這樣的事情,而不是:
<script language="JavaScript">
var url = "http://localhost:8888/uploads/<? echo $name ?>/output.txt";
setTimeout(function() {
top.location.href = url
},1000);
</script>
通過一個函數不是字符串,但setTimeout?但在字符串連接修復中爲+1) – 2011-06-02 18:05:27
請閱讀我的「Further」:P – Matt 2011-06-02 18:06:53
對於動詞(echo'ing)+1:D – 2011-06-02 18:07:16