0

我正在尝试使用 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 世界还很陌生,但非常感谢正确方向的观点。提前致谢。

4

3 回答 3

3

在 PHP 中构建一个类似于您想要的 JavaScript 对象的关联数组,然后json_encode()将其转换为 JSON 对象,然后您可以轻松地传递给 JavaScript。

您甚至可以执行以下操作:

<?php
// stuff
$resultObj = json_encode($row);
?>

<script type="text/javascript">
var genreObj = <?= $resultObj ?>;
</script>

这不应该是您问题的完美解决方案,但希望它会给您一些想法。

于 2013-02-09T01:45:12.607 回答
1

我认为

<? $row['Type'] ?>

应该

<?= $row['Type'] ?> or
<? echo $row['Type'] ?>

同样适用

<? $parent ?>;
于 2013-02-09T01:45:14.490 回答
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
        }
?>
于 2013-02-09T02:03:17.623 回答