【问题标题】:html options displaying duplicate json output显示重复 json 输出的 html 选项
【发布时间】:2015-02-07 19:32:52
【问题描述】:

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

我有一个表单,该表单有几个类别,通过 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":"爱好"},{"IdCategory":"3","Category":"纹身"},{"IdCategory":"4","类别":"旅行"},{"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);
?>

【问题讨论】:

  • 我们能在你的 html 页面上看到你调用它的 php 吗?那真的很有帮助。

标签: php html json duplicates


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2021-07-15
    • 2020-07-23
    相关资源
    最近更新 更多