在这个脚本中,我有三个PHP变量,我想用Javascript输出以进行测试。 $ Q1,$ Q2和$ Q3。我想通过for循环添加Q及其索引(1,2和3)来输出所有这些。防爆。如果我想输出$ Q2,即$ Q2,那么在for循环的第二次迭代中,它必须是'Q'+ i,其中i是2.
见下文:
<?php
error_reporting(E_ALL);ini_set('display_errors','On');
$Q1 = 'Question 1';
$Q2 = 'Question 2';
$Q3 = 'Question 3';
?>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var Q1 = "<?php Print($Q1); ?>";
var Q2 = "<?php Print($Q2); ?>";
var Q3 = "<?php Print($Q3); ?>";
for (var i = 1; i <= 3; i++)
{
alert (eval("Q" + i));
}
</script>
</body>
</html>
我尝试使用eval,但我觉得它更多用于算术目的。我可以用什么来代替呢?
答案 0 :(得分:2)
尝试类似:
alert(eval('Q'+i));
答案 1 :(得分:2)
为什么不使用数组?,你甚至可以在php上循环生成问题
<?php
error_reporting(E_ALL);ini_set('display_errors','On');
$Q1 = 'Question 1';
$Q2 = 'Question 2';
$Q3 = 'Question 3';
?>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var Question= new Array( "<?php Print($Q1); ?>","<?php Print($Q2); ?>","<?php Print($Q3); ?>");
for (var i = 0; i <= 3; i++)
{
alert (Question[i]);
}
</script>
</body>
答案 2 :(得分:0)
eval
可能很危险
更好的方法是将变量转换为数组,并使用json_encode
将数组传递给javascript
PHP
$q= array('Question 1', 'Question 2','Question 3');
HTML
var questions = <? echo json_encode($q) ?>;
for (var i = 1; i <= 3; i++)
{
alert (questions[i]);
}