我必须使用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; ?>,
),但这不起作用。
你推荐什么?
答案 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回声是丑陋的,也是一种不好的做法。