簡體   English   中英

在Javascript里面回應PHP?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM