将多个对象添加到javascript数组 - 从一个DataBase字符串值 - 不使用循环

时间:2012-09-04 22:25:34

标签: javascript arrays

谢谢你看一下:)

我知道我可以在javascript数组中一次添加多个对象,如下所示:

<script>

    var myCarsArray = ["Saab","Volvo","BMW"];

    alert("The second element in my array = "+myCarsArray[1]);

</script>

此警报'我的数组中的第二个元素=沃尔沃'。

我想简单地将数组值存储在数据库中作为字符串 - 所以在数据库中会有一个名为'My_Cars_Array_Database_String_Value'的字段 我会将我的数组值放在那里,就像我用javascript将它们放在数组中一样 - 所以字符串看起来像这样:

“萨伯”, “沃尔沃”, “BMW”

现在我使用MySQL获取字符串值并使用PHP回显该值,如此

<script>

    var myCarsArray = [<?php echo $My_Cars_Array_Database_String_Value; ?>];

    alert("The second element in my array = "+myCarsArray[1]);

</script>

此警报'我的数组中的第二个元素= S'!它将整个字符串视为一个数组。

所以我能让这个工作的唯一方法就是以这种方式使用'eval':

<script>

   var myCarsArray = eval("["+<?php echo $My_Cars_Array_Database_String_Value; ?>+"]");

   alert("The second element in my array = "+myCarsArray[1]);

</script>

这正确警告'我的阵列中的第二个元素=沃尔沃'。


我的问题是:如何将字符串保存到数据库中,以便我可以将其直接插入到javascript数组中,使用:

myCarsArray = [<?php echo $My_Cars_Array_Database_String_Value; ?>];

没有使用任何类型的循环 - 我理解如何通过循环实现这一点 - 我不想使用循环。或者'eval'方法是唯一的方法吗?


澄清:

关于这篇文章的问题是如何保存javascript可用的数组值 - 作为MySQL的字符串 - 以后可以通过 -

轻松插入到数组中
myCarsArray = [<?php echo $My_Cars_Array_Database_String_Value; ?>]; 

方法

AND可以不使用循环或'eval'语句来完成吗?

提前致谢 - 我期待您的回复。

此致 肯

3 个答案:

答案 0 :(得分:0)

我的PHP语法很生疏,但您应该能说出类似的内容:

<php
  <script>
  echo "var array = " . json_encode($My_Cars_Array_Database_String_Value) . ";";
  </script>
?>

答案 1 :(得分:0)

MultiDimeArray = { SomeOtherValues:"SomeValue", 
                   myCarsArray:"<?php echo $My_Cars_Array_Database_String_Value; ?>" 
                 };

假设它应该是

MultiDimeArray = { SomeOtherValues:"SomeValue", 
                   myCarsArray:[<?php echo $My_Cars_Array_Database_String_Value; ?>] 
                 };

在你的输出中: myCarsArray:'萨博','沃尔沃','宝马'而不是myCarsArray: ['萨博','沃尔沃',' BMW'的

答案 2 :(得分:0)

你不想让循环复杂化吗?它们是基本且有效的流量控制工具,你试图使用eval技巧已经为自己做了多么复杂的事情?

Eval是邪恶的,避免它。您正试图从服务器评估JavaScript,但您不知道它将做什么。

明确你要做的事情,它不仅会使未来的维护变得更加容易,如果其他人继承你的工作,他们也不会想要追捕你并且为了使他们做坏事而做坏事。工作是一场噩梦。