0

PHP を使用してストアド プロシージャを実行しようとしています。クエリの結果を JavaScript オブジェクトに入れたい。これを達成する方法が見つかりません。このコードを実行しましたが、返される結果の 1 つが未定義です。これが私のコードです:

$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

必要な JavaScript オブジェクトに似た連想配列を PHP で作成し、それを使用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 に答える