我正在尝试使用PHP运行存储过程。我想将查询的结果放入一个javascript对象。我找不到如何做到这一点。我已经运行了这段代码但是我收到的结果之一是未定义的。这是我的代码:
$result = mysql_query("call sp_getGenre()");
if($result === FALSE){
die(mysql_error());
}
while($row = mysql_fetch_array($result)){
?>
<script type="text/javascript">
console.log(<? $row['Type'] ?>);
var genreObj = new Object();
genreObj.name = "<? echo $row['Type'] ?>";
genreObj.level = <? echo $row['Level'] ?>;
<?
$parentID = $row['PrevID'];
if($parent == null){ $parent = "0"; }
?>
genreObj.parent = <? $parent ?>;
arrGenre.push(genreObj);
</script>
<?
}
?>
我是PHP世界的新手,但我会非常欣赏正确方向的一点。提前谢谢。
答案 0 :(得分:3)
在PHP中构建一个类似于您想要的JavaScript对象的关联数组,然后使用json_encode()
将其转换为JSON对象,然后您可以轻松地传递给JavaScript。
您甚至可以执行以下操作:
<?php
// stuff
$resultObj = json_encode($row);
?>
<script type="text/javascript">
var genreObj = <?= $resultObj ?>;
</script>
这不应该是你问题的完美解决方案,但希望它会给你一些想法。
答案 1 :(得分:1)
我认为
<? $row['Type'] ?>
应该是
<?= $row['Type'] ?> or
<? echo $row['Type'] ?>
同样适用于
<? $parent ?>;
答案 2 :(得分:0)
下面的代码没有经过全面测试,但基本的想法是将所有值写入数组,然后将该数组转换为json对象。从那里将json对象分配给jsonresults变量。现在,您可以通过javascript获取所需的所有信息。
<?php
$result = mysql_query("call sp_getGenre()");
if($result === FALSE){
die(mysql_error());
}
while($row = mysql_fetch_array($result)){
$resultsarray = array("type"=> $row['type'], "level" => $row['Level'}, "previd" => $row['PrevID']);
$jsonifiedresults = json_encode($resultsarray);
?>
<script type="text/javascript">
jsonresult = <? echo $jsonifiedresults; ?>;
console.log(jsonresult.type);
var genreObj = new Object();
genreObj.name = jsonresult.type;
genreObj.level = jsonresult.level;
genreObj.parent = jsonreult.prevID;
arrGenre.push(genreObj);
</script>
<?php
}
?>