2016-12-14 113 views
0

在我的一個頁面上有簡單的代碼(見下文),在客人登錄後他們返回到主頁面,他們應該會遇到一個彈出式小模式謝謝你的留言。 在這方面嘗試了多重變化,但沒有工作,這應該是一個ABC,因爲它不工作?通過php/javascript打開模態

<?php if(isset($thx) === 'Y'){?> 
     <script type="text/javascript"> 
     $('#\\#thx').modal('show'); 
     </script> 
<?php } ?> 
+0

定義爲 「無工作」。怎麼了?錯誤?結果無效? – Sayse

+0

https://api.jquery.com/ready/ – Clive

+1

'if(isset($ thx)==='Y')'是錯誤的。 'isset()'返回一個布爾值。一個布爾值將永遠不會與'Y'相同 – Dezza

回答

0

將JQuery腳本包裝在文檔中準備就緒。

$(document).ready(function() { 
    $('#\\#thx').modal('show'); 
}); 

在文檔「準備就緒」之前,不能安全地操作頁面。 jQuery爲您檢測到這種狀態。包含在$(document).ready()中的代碼只有在頁面文檔對象模型(DOM)準備好要執行JavaScript代碼時纔會運行。

+0

嘗試它已經沒有效果,感謝回答 –

0

你必須使用

$(document).ready(function(){ 

    //your code here 
}) 

這將運行功能時,頁面加載。

+0

已經嘗試過,謝謝回答 –

+0

請將您的模態html添加到問題中。 –

0

試試這個:

<?php if(isset($thx) == "Y"){?> 
     <script type="text/javascript"> 
     $(document).on('ready',function({ 
      $('#thx').modal('show', true); 
     }); 
     </script> 
<?php } ?> 
+0

沒有用第二個參數(true)嘗試過,但現在已經嘗試過,但仍然沒有模態,謝謝 –

+0

@PeterBaker:它是自舉模態嗎?你有沒有在你的代碼中包含「bootstrap」和「jquery」(.js和.css)?還要嘗試檢查結果:最好在Chrome中,右鍵單擊您的頁面並選擇檢查。在檢查窗口中選擇「控制檯」選項卡,然後查看頁面加載過程中可能出現的任何錯誤(紅色)。也嘗試創建一個元素手動觸發模式(以確保它可以工作)。 –

+0

已經通過控制檯進行了檢查日誌清晰起來。它是一個真正的頭部劃痕器,認爲我會將它撕掉並放入更改中 –

0

您的問題似乎在這裏:

if(isset($thx) === 'Y')

isset()將返回一個布爾值。也就是說truefalse。 然後您將truefalse'Y'進行比較,但詢問它們是否相同。

一個相同的檢查===意味着他們需要是相同的類型和相同的值。由於布爾值不是一個字符串,它們不是相同的類型,所以測試將失敗。

欲瞭解更多信息,請參閱php手冊comparison operators


你可能想要的東西,像下面這樣:

if(isset($thx) && $thx === 'Y')