2013-02-09 48 views
0

我想用PHP运行一个存储过程。我想把查询的结果放到一个javascript对象中。我无法找到如何完成此操作。我已经运行了这段代码,但是我得到的结果之一是我没有定义。这里是我的代码:使用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

您可以在这里粘贴输出,为什么不使用echo或=来显示genreObj.parent = 中的变量内容; 您可以使用Ajax轻松创建对象 – Hamza 2013-02-09 01:31:36

+0

感谢您的快速回复。我不完全理解。你能给我一个genreObj.name =“<?echo $ row ['Type']?>”的例子吗?应该看起来像请。 – seroth 2013-02-09 01:34:40

回答

1

我觉得

<? $row['Type'] ?> 

应该

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

也是一样的下方不完全测试

<? $parent ?>; 
+0

我加了echo,仍然没有结果。 Firebug说第一个返回值“bob”是未定义的。 genreObj.name =“<?echo $ row ['Type']?>”; – seroth 2013-02-09 01:53:24

+0

你确定所有的PHP变量都有值吗? – Leeish 2013-02-09 02:00:42

+0

是的,我在HeidiSQL中运行了存储过程并查看了所有结果。 – seroth 2013-02-09 02:01:45

3

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

你甚至可以做一些事情,如:

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

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

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

+0

是否可以构建一个PHP对象并将该对象传递给JavaScript对象? – seroth 2013-02-09 02:01:08

+0

默认情况下,您的对象类必须提供编码方法。请参阅http://stackoverflow.com/questions/4697656/using-json-encode-on-objects-in-php-regardless-of-scope – Barmar 2013-02-09 02:12:46

+0

正在使用该方法的唯一方法? – seroth 2013-02-09 02:16:42

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 
     } 
?> 
相关问题