如何在JS中的变量上添加(或附加)变量

时间:2012-02-19 23:52:57

标签: javascript escaping

我坚持在文本变量(字符串)上附加counter-var(b) - 不是数学 - 只是在JS中的data-var上添加计数器(b)...

示例:

<script type="text/javascript">    

<?php 
$i=0;
foreach ($sqldata as $data){
echo 'var data'.$i.' = 
Array("'.implode('", "', array_map('addslashes', $data)).'");';     
$i++;
}
echo 'var data_ges = '.$i.' ;';
?>

for (b=0; b<data_ges; b++){
document.writeln (data+b[1]); // ERROR LINE - How do i escape here ?
}

</script>

谢谢!

3 个答案:

答案 0 :(得分:1)

您应该只使用数组而不是尝试动态使用变量名称:

<script type="text/javascript">    
  var data = [];
<?php 
$i=0;
foreach ($sqldata as $data){
echo 'data['.$i.'] = 
Array("'.implode('", "', array_map('addslashes', $data)).'");';     
$i++;
}
?>

for (b=0, l = data.length; b<l; b++){
document.writeln (data[b]); // ERROR LINE - How do i escape here ?
}

</script>

答案 1 :(得分:1)

您可以使用json_encode函数创建一个javascript-object,您可以轻松地进行迭代。 http://www.php.net/manual/en/function.json-encode.php

答案 2 :(得分:0)

你的php正在制作一组变量,例如data0data1。捕获这些内容的一种方法是将其从this或全局window对象中删除:

for (var i = 0; i < data_ges; ++i) {
  document.writeln(window['data' + i]);
}

实际上,在PHP中实际创建一个名为data的数组可能会更好:

var data = [];
<?php 
foreach ($sqldata as $data) {
    echo 'data.push(' … ');';
}    
?>

for (var i = 0; i < data.length; ++i) {
  document.writeln(data[i]);
}