将数组作为值传递给JS

时间:2019-02-06 11:32:56

标签: javascript php sql

我想将数组从PHP传递到Javascirpt,所以我只得到一个值列表-当前我得到JSON格式-我知道这是因为我正在使用JSON_ENCODE,我只是希望/想知道是否有一种传递方法是将其作为一组简单的值还是在以后进行解析?

抱歉,我对此很陌生:)

与以前的回答类似的问题,我尝试了一些不同的尝试,但似乎没有一个办法解决问题。

<?php 

$user = 'xxx';
$pass = 'xxx';
$connection_string = 'connectionstringtomysqldatabase';

$connection = odbc_connect( $connection_string, $user, $pass ); 
$sqlstring = "SELECT FIELD1 FROM TABLE.ITEM where IASOHQ<>0 FETCH FIRST 10 ROWS ONLY";
$result = odbc_exec($connection, $sqlstring);

while ($info = odbc_fetch_array($result)) {
$content[] = $info;
}

?>

<script type="text/javascript">

var content = <?php echo json_encode($content); ?>;

</script>

我想要...

var content = [68,116,49,57,13,11,46,47,14,79]

我知道...

var content = [{"FIELD1":"68"},{"FIELD1":"116"},{"FIELD1":"49"},{"FIELD1":"57"},{"FIELD1":"13"},{"FIELD1":"11"},{"FIELD1":"46"},{"FIELD1":"47"},{"FIELD1":"14"},{"FIELD1":"79"}];

4 个答案:

答案 0 :(得分:2)

之所以会得到这个结果,是因为您的数组是多维的,具有关联的第二级键,即看起来像

$content = [['FIELD1' => 68], ['FIELD1' => 116], ..., ['FIELD1' => 79]];

这是因为odbc_fetch_array为每一行返回一个关联数组。要修复您的数据格式,只需更改此行:

$content[] = $info;

$content[] = $info['FIELD1'];

这将为您提供一个看起来像您想要的结果的数组

[68,116,49,57,13,11,46,47,14,79]

答案 1 :(得分:0)

只需添加'即可使其成为一个值。更改

var content = <?php echo json_encode($content); ?>;

var content = '<?php echo json_encode($content); ?>';
var myObject = JSON.parse(content);

然后遍历数组。

答案 2 :(得分:0)

只需更改此php代码的安全性即可。我认为数组的所有索引都是FIELD1

...
while ($info = odbc_fetch_array($result)) {
$content[] = $info['FIELD1'];
}
...

答案 3 :(得分:-1)

只是
echo json_encode(array_values($content)); 它会工作;