显示重复 JSON 输出的 HTML 选项


html options displaying duplicate json output

所以,我在这里遇到了一个奇怪的情况:

我有一个表单,该表单有几个类别,通过 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","Category":"Hobbies"},{"IdCategory":"3","Category":"Tattoos"},{"IdCategory":"4","Category":"Trips"},{"IdCategory":"5","Category":">

Esoteric"},{"IdCategory":"6","Category":"Books"}]

爱好塔托斯旅行深晦书。

目前为止,一切都好。但是当我在我的 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中获取了这个值 - 在网站本身中只出现了两次值(

这里可能发生了什么??我无法理解哪里出了问题。

可能重要的是要注意我之前有一个类似的 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);
?>

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

我告诉我在同一代码上运行 2 个 php 文件没有问题(它没有(,但我不知道我不能以相同的方式命名两个文件变量,所以,第一个 php 的$output出现在第二个 php 文件中,结果给了我 $output$output。

将第二个文件的名称更改为 $output 2 解决了此问题。

相关文章: