如何使用PHP变量填充JavaScript变量?

时间:2017-05-15 13:12:12

标签: javascript php variables

我必须使用PHP变量(来自DB)填充JavaScript变量,如下所示:

var oMain = new CMain({
  mon:  100,        
  min_: 10,      
  max_: 25,     
  time_bet: 0,       
  time_winner: 500,  
  win_occurrence: 65, 
  cash:100000,  
  fullscreen:true, 
  check_orientation:true,  
  show_credits:true,  
  num_before_ads:1 
});

我尝试直接在JavaScript中echo我的PHP变量(例如mon: <?php echo $mon; ?>,),但这不起作用。

你推荐什么?

2 个答案:

答案 0 :(得分:0)

你应该用引号包围php代码,因为这个php语句<?php echo $mon; ?>将返回字符串,并且它可以被js读取,它应该被引号包围。

mon: '<?php echo $mon; ?>';

编辑:如果要打印数字,则应解析它,例如:

mon: parseInt('<?php echo $mon; ?>',10);

mon: parseFloat('<?php echo $mon; ?>');

答案 1 :(得分:0)

最佳做法是使用ajax调用小型API并通过JSON检索您的值。

<?php
 $result =  array(
                  'mon' =>  $mon,        
                  'min_'=> $min,      
                  'max_'=> $max,     
                  'time_bet'=> $time_bet,       
                  'time_winner'=> $time_winner,  
                  'win_occurrence'=> $win_ocurr, 
                  'cash'=>$cash,  
                  'fullscreen'=>$fullscreen, 
                  'check_orientation'=>$orientation,  
                  'show_credits'=>$credits,  
                  'num_before_ads'=>$num_before_ads 
           );
echo json_encode($result);

?>

<script>
var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
       if (xmlhttp.status == 200) {
           //manipulate your result
       }
       else if (xmlhttp.status == 400) {
          alert('There was an error 400');
       }
       else {
           alert('something else other than 200 was returned');
       }
    }
};

xmlhttp.open("GET", "ajax_file.php", true);
xmlhttp.send();
</script>

如果php已经加载并且有前端,则放入隐藏的输入或数据属性。 PHP中的混乱PHP回声是丑陋的,也是一种不好的做法。