Javascript代码在控制台中给出条件错误

时间:2016-09-28 07:30:04

标签: javascript php

<?php
if($_GET['st'] !=''){
$st= $_GET['st'];
?>
    <script>
    var st = <?php echo  $st; ?>
    if(st !=''){
        console.log('got function here');
    }
    </script> 
<?php }?>

我想表明如果$ st不等于空,那么做别的事做别的但是给出错误

  

pro.php?st = foo:13 Uncaught SyntaxError:意外的令牌if。

3 个答案:

答案 0 :(得分:0)

试试这个,

<?php
  if($_GET['st'] !=''){
  $st= $_GET['st'];
?>
<script>
  var st = "<?php echo  $st; ?>"; // assign var st properly with ("st";)
  if(st !=''){
  console.log('got function here');
  }    
</script> 
<?php 
}
?>

答案 1 :(得分:0)

而不是st = <?php echo $st; ?>使用st = "<?php echo $st; ?>";,您需要关闭PHP和javascript的语句。

<?php
if($_GET['st'] !=''){
$st= $_GET['st'];
?>
    <script>
    var st = "<?php echo  $st; ?>";
    if(st !=''){
        console.log('got function here');
    }
    </script> 
<?php }?>

答案 2 :(得分:0)

您需要在引号内存储st,类似:

var st = '<?=$st?>';

但在此之前,您还需要使用isset()来检查$_GET['st']是否设置以及!empty()条件。

示例:

<?php
if(isset($_GET['st']) && !empty($_GET['st'])){
  $st = $_GET['st'];
?>
    <script>
    var st = '<?=$st?>';
    if(st != ''){
      console.log('got function here');
    }
    </script> 
<?php 
}
?>

请注意,您已经检查了PHP中的空值,不知道为什么要在javascript中再次使用它。