如何从PHP数组到Javascript数组获取值?

如何从PHP数组到Javascript数组获取值?,javascript,php,Javascript,Php,所以我现在正在为我的外家人的网站做一些编码,我必须创建一个条形图,现在我需要用他们的SQL数据库中的数据填充它。首先,我只是像这样回显阵列: PHP: 和JS: <script> var jExampleArray = <? echo json_encode($exampleArray);?>; </script> var-jExampleArray=; 然后我在条形图代码中使用了jExampleArray。现在我很高兴,但他们说需要更安全(这涉及到

所以我现在正在为我的外家人的网站做一些编码,我必须创建一个条形图,现在我需要用他们的SQL数据库中的数据填充它。首先,我只是像这样回显阵列:

PHP:


和JS:

<script> var jExampleArray = <? echo json_encode($exampleArray);?>;  </script>
var-jExampleArray=;
然后我在条形图代码中使用了jExampleArray。现在我很高兴,但他们说需要更安全(这涉及到他们的公司),我必须找到一种方法,确保没有人能在查看页面上的代码时看到数据。我曾考虑过使用Ajax之类的工具,但它对我来说根本不起作用。我用它来提醒我数组,但无法用它填充Javascript数组

我以前从来没有学过JS、PHP或SQL,只是在学校里学过Java,所以我很无知,我做的大部分事情都是在互联网的帮助下完成的。幸运的是,我至少理解了我编写/复制的代码


编辑:[]对于JS数组而不是{}

一些伪代码,以显示如何实现所述目标

$data=array();
while( $rs=$db->fetch() ){
    $data[]=array(
        'field_1'   =>  $rs->field_1,
        'field_2'   =>  $rs->field_2,
        'field_3'   =>  $rs->field_3
    );
}

$json=json_encode( $data );


<script>
    <?php
        echo "var jExampleArray={$json};";
    ?>
    /* rest of barchart code */
</script>
$data=array();
而($rs=$db->fetch()){
$data[]=数组(
'field_1'=>$rs->field_1,
'field_2'=>$rs->field_2,
'field_3'=>$rs->field_3
);
}
$json=json_encode($data);
/*其余的条形图代码*/

如果PHP数组在页面加载时可用,请使用:

<?php
$phpArray = array('data1' => 2, 'data2' => 3);
?>
<script>var arr = <?php echo json_encode($phpArray); ?>;</script>

创建PHP数组的语法不正确

使用函数
json\u encode
将PHP数组转换为Javascript数组和对象

<?php

$arr = ['hello', 'world', 'foo', 'bar'];
$obj = ['hello' => 'world', 'foo' => 'bar'];

echo 'var Array = ' . json_encode($arr) . PHP_EOL .
     'var Obj = ' . json_encode($obj, JSON_FORCE_OBJECT) . PHP_EOL;

ExampleArray不是数组。此外,虽然它可能在“查看源代码”中不可见,但IE/Chrome中的简单F12(开发人员控制台)将允许他们查看生成的JS代码、对象和数据。要使其成为数组,它应该是
$ExampleArray=[“212”、“33”、“7”]
;呜呜声对不起。尝试在不查看我的常规代码的情况下键入此代码进行练习。以后,请从IDE中复制准确的代码
var arr=JSON.parse(responseArray)不会work@LucaKiebelparse是将原始文本转换为JS数组(如果格式正确)。更新了线程,指定将与ajax响应一起使用的方法。我尝试了这个方法,但没有成功。它总是说第一行$arr=…有问题……您运行的是什么版本的PHP?通过创建一个仅为
echo phpversion()
的文件来查找。如果小于5.4,则需要使用
$arr=array('hello',etc')创建数组谢谢!看来我真的在用5.2I了。但我只在这里呆8天左右。这是说。我试过这个,现在它说“var ArrayTest=['hello',test','wow'](用于测试)。现在有没有一种方法可以让JS使用document.write()输出它?
var arr = JSON.parse(responseArray);
<?php

$arr = ['hello', 'world', 'foo', 'bar'];
$obj = ['hello' => 'world', 'foo' => 'bar'];

echo 'var Array = ' . json_encode($arr) . PHP_EOL .
     'var Obj = ' . json_encode($obj, JSON_FORCE_OBJECT) . PHP_EOL;
var Array = ["hello","world","foo","bar"]
var Obj = {"hello":"world","foo":"bar"}