2013-04-04 102 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