2013-04-04 127 views
1

我在我的瀏覽器控制檯,而執行此代碼收到錯誤: -這個php語法有什麼問題?

<script type="text/javascript"> 
     $(function(){ 
      if(<?php (strpos($_SERVER['REQUEST_URI'],'/web/login/index/1') === 0)?>) { 
       var loggedOut= <?=$fb_logout;?>; 
      } 
      else{ 
      var loggedOut = null; 
      } 

     some more java script 
     . 
     . 
     . 


     . 
     </script> 

我所試圖做的是與存儲在fb_logout值1到初始化loggedOut如果請求來自網頁擁有URl的/ web/login/index/1部分。我在瀏覽器控制檯中發現錯誤,指出「if()」後面緊跟「jquery.min.js(第3行,第15列)」這些關鍵詞。我正在使用jQuery庫。

感謝

+0

爲什麼兩個關閉腳本標記? – 2013-04-04 14:13:39

+0

btw:你的腳本打開標記是錯誤的 – 2013-04-04 14:13:50

+0

只是提示:你的瀏覽器看到了什麼?也許'if(){...'?另外,您正在打開一個關閉''標籤。 – Carsten 2013-04-04 14:14:07

回答

3

您需要返回/顯示您的語句的結果:

<?=((strpos($_SERVER['REQUEST_URI'],'/web/login/index/1') === 0) ? 'true': 'false')?> 
+0

你真的認爲你正在保存'<?='而不是'<?php echo'嗎? – 2013-04-04 14:13:20

+0

我只是習慣'<?=',有什麼問題? – MMM 2013-04-04 14:14:00

+0

請注意,'echo false;'不會產生任何輸出,所以生成的JavaScript代碼將是'if(){...',這將是一個語法錯誤。 – 2013-04-04 14:17:21

1

現在,試着檢查:

<?php 
if (strpos($_SERVER['REQUEST_URI'], '/web/login/index/1') === 0) { 
    echo "false"; 
} else { 
    echo "true"; 
} 
?> 

由於在最初的PHP代碼的上面的代碼。

+0

這是錯字我現在編輯了我的問題。 – 2013-04-04 14:16:18

+0

我想我需要回應這個比較的結果。 – 2013-04-04 14:33:19

+0

您的意思是,當請求的URI返回'/ web/login/index/1'時,'<?= $ fb_logout;?>'將被存儲到var'loggedOut'?嘗試檢查我的更新以上.. – 5ervant 2013-04-04 15:21:13

3

主要答案:您不會輸出比較結果。

建議:如何使用三元運算符?

var loggedOut = <?php echo (strpos($_SERVER['REQUEST_URI'],'/web/login/index/1') === 0) ? $fb_logout : 'null' ?> 
+0

謝謝你的建議是非常優雅的。我將使用它。非常感謝。 – 2013-04-04 14:28:33