【问题标题】:php variable in javascript arrayjavascript数组中的php变量
【发布时间】:2012-05-24 11:04:25
【问题描述】:

为什么我的 Javascript 数组是空的? 在一个while循环中,我填充了一个变量($btext)。当我回显 $btext 时,一切都显示正常:

但如果我尝试填充 Javascript 数组,则不会在那里打印任何内容。

这就是我在 php 中填充变量 $btext 的方式:

$btext .= "\"".${'name_'.$user}."\",";

这里是 Javascript 部分:

var battletext = new Array(<? echo $btext; ?>);

如果我将 $btext 定义为:

$btext = "\"Hallo\", \"Welt\"";

源代码如下所示:

<script>
var battletext = new Array("Hallo", "Welt");
</script>

【问题讨论】:

  • 从这个问题很难看出你的问题是什么。
  • 为什么你认为它会是空的?战斗文本的长度为 2。
  • 空数组在哪里?
  • JS中的emty数组长这样:new Array()
  • 试试$btext = array(); $btext[] = ${'name_'.$user}; echo "var battletext = ".json_encode($btext).";";

标签: php javascript arrays variables


【解决方案1】:

你应该只使用 json 编码:

$battletext = array( "Hallo", "Welt" );

html:

<script>
var battletext = <?php echo json_encode( $battletext ); ?>;
</script>

来源:

<script>
var battletext = ["Hallo", "Welt"];
</script>

【讨论】:

  • 如何在 while 循环中填充 $battletext?
  • 解释我喜欢做什么:我喜欢在循环中填充一个变量($btext),然后 JS 应该逐步遍历变量的每个部分并在文本框中显示它
  • @Quicknation 而不是在循环中使用字符串连接 ($btext .= ) 在循环之前声明 $btext = array(),并在循环内使用以下行:$btext[] = ${'name_'.$user}; - 然后你有一个 PHP 数组名称,json_encode() 将转换为有效的 Javascript array literal。作为旁注,您最好首先使用数组而不是变量变量名
  • @DaveRandom:我按照你的描述做了。在源代码中仍然有一个空数组: var Battletext = ;如果我回显 $btext[1] 会显示名称...???
  • 如果您在代码中的同一位置执行&lt;? print_r($btext); ?&gt; 会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多