[英]Echo PHP inside Javascript?
為什么這不起作用?
<?php
mysqli_select_db($connect,"dev");
$response = "Select response from revbut where session='$u'";
$rquery = mysqli_query($connect,$response);
$responseanswer = mysqli_fetch_array($rquery);
$re = $responseanswer['response'];
?>
<script type="text/javascript">
<?php echo $re; ?>
</script>
JavaScript中的$re
沒有得到回應。 但是,如果我把它放在上面的PHP函數中,它就會得到回應。
編輯 - 但為什么這不起作用?
if(<?php echo $re; ?>){
document.getElementById('hide').style.display = "none";
}
如果我將隱藏功能置於if之外 - 它正在工作。
它得到了回應,但您不會在頁面上看到任何內容,因為文本將寫在瀏覽器未顯示的Javascript標記內。 查看您的頁面來源以驗證文本是否真的存在。
編輯
嘗試
if(<?php echo json_encode($re); ?>){
document.getElementById('hide').style.display = "none";
}
這將確保您的PHP字符串將轉換為適當的Javascript類型 - 如果是字符串,它將確保字符串包含在"
並正確轉義”。
再次編輯
當您執行以下操作時
<script type="text/javascript">
if(<?php echo $re; ?>){
document.getElementById('hide').style.display = "none"; }
</script>
這是寫入HTML頁面的內容(然后由瀏覽器解釋)
<script type="text/javascript">
if(whatever is in the $re vairable){
document.getElementById('hide').style.display = "none"; }
</script>
但這甚至不是有效的Javascript。 你想要的是什么
<script type="text/javascript">
if("whatever is in the $re vairable"){
document.getElementById('hide').style.display = "none"; }
</script>
注意"
這確保整個事物是有效的Javascript,並且$re
的內容將被瀏覽器的Javascript引擎解釋為Javascript字符串。對json_encode()
的調用就是這樣 - 它將PHP變量轉換為適當的Javascript變量。
試試這個:
<script type="text/javascript">
alert('<?php echo $re; ?>');
</script>
首先,您不能假設所有與數據庫相關的操作總是成功完成並始終返回數據。 打開PHP手冊,查看所有mysqli_ *函數調用並添加適當的測試以檢測它們是否返回錯誤代碼。
其次,PHP和JavaScript不能同時運行。 PHP完成后,你得到的是一些發送到瀏覽器的純文本。 如果該文本恰好是JavaScript代碼,則將運行該代碼。 而且您不必猜測:JavaScript代碼就在那里,您可以使用瀏覽器的“查看源”菜單進行檢查。
查看源它是回聲嘗試並確認
<script type="text/javascript">
alert('<?=$re; ?>');
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.