html选项显示重复的json输出

时间:2014-12-09 19:09:03

标签: php html json duplicates

所以,我在这里面临一个奇怪的情况:

我有一个表单,该表单有几个通过Json加载的类别。

我所引用的表单部分的代码如下:

<div>
  <select>
    <?php include_once("php_loader/getAllCategoriesOptions.php"); ?>
  </select>
</div>

到目前为止很好,然后我有那个php文件:

<?php
$con = $con = mysqli_connect("localhost","XXX","XXX","XXX");
mysqli_query($con,"SET NAMES UTF8");  /
if (!$con)
    {
    die('Could not connect: ' . mysqli_error());
    }
$result = mysqli_query($con,"SELECT * FROM categories WHERE IdCategory > 1") or die;
while($row = mysqli_fetch_assoc($result))
  {
    $output[]=$row;
  }
  print json_encode($output);
foreach($output as $json){
    echo'<option value="'.$json['IdCategory'].'">'.$json['Category'];
}
mysqli_close($con);
?>

Wich返回以下输出:

[{ “IdCategory”: “2”, “种类”: “爱好”},{ “IdCategory”: “3”, “类别”: “纹身”},{ “IdCategory”: “4”,”类别 “:” 跳闸 “},{” IdCategory “:” 5" , “类别”: “密”},{ “IdCategory”: “6”, “类别”: “书籍”}]

嗜好 Tattos 旅行 密宗 书籍。

到目前为止一切顺利。但是当我在我的html页面上包含它时,它给出了以下输出:

<div>
<select>
[{"IdCategory":"0","Category":"All Categories"},{"IdCategory":"1","Category":"Technology"},{"IdCategory":"2","Category":"Hobbies"},{"IdCategory":"3","Category":"Tattoos"},{"IdCategory":"4","Category":"Trips"},{"IdCategory":"5","Category":"Esoteric"},{"IdCategory":"6","Category":"Books"},{"IdCategory":"2","Category":"Hobbies"},{"IdCategory":"3","Category":"Tattoos"},{"IdCategory":"4","Category":"Trips"},{"IdCategory":"5","Category":"Esoteric"},{"IdCategory":"6","Category":"Books"}]
<option value="0">All Categories</option>
<option value="1">Technology</option>
<option value="2">Hobbies</option>
<option value="3">Tattoos</option>
<option value="4">Trips</option>
<option value="5">Esoteric</option>
<option value="6">Books</option>
<option value="2">Hobbies</option>
<option value="3">Tattoos</option>
<option value="4">Trips</option>
<option value="5">Esoteric</option>
<option value="6">Books </option>
</select>
</div>

(我从mozzila firebug中获取此值 - 在网站本身只出现两次值)

这里可能发生什么?我无法理解它的错误。

可能需要注意的是,我之前运行了一个simmilar php文件并且php文件加载了该表的每个条目 - 我怀疑它可能与此有关但我无法获得解决方案(我在同一个html页面中查询同一个表格两次以获得不同的输出,一个给我几个,每个类别一个,其他给我几个如上所述)。

提前致谢。

PS:问:这是我之前在同一代码中使用的另一个php文件:

<?php
$con = $con = mysqli_connect("localhost","ZZZ","ZZZ","sametable");
mysqli_query($con,"SET NAMES UTF8");  //é preciso meter isto em utf-8 senão não manda nada
if (!$con)
    {
    die('Could not connect: ' . mysqli_error());
    }
$result = mysqli_query($con,"SELECT * FROM categories") or die;
while($row = mysqli_fetch_assoc($result))
  {
    $output[]=$row;
  }

foreach($output as $json){
   echo 
   '<li>
   <a class="item">'.$json['Category'].'</a>
   </li>';   
}
mysqli_close($con);
?>

1 个答案:

答案 0 :(得分:0)

所以,似乎我发现了错误(而且这是一个非常愚蠢的错误)。

我认为在相同的代码中运行2个php文件没有问题(并且它没有)但我不知道我无法将两个文件变量命名为相同的,所以,第一个php的$输出出现在第二个php文件中,结果是$ output $ output。

将第二个文件的名称更改为$ output2解决了这个问题。