连接字符/数字来表示Javascript中的变量?

时间:2014-07-27 18:38:52

标签: javascript php

在这个脚本中,我有三个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,但我觉得它更多用于算术目的。我可以用什么来代替呢?

3 个答案:

答案 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]); 

 }