Параметры HTML, отображающие дубликат вывода JSON

Итак, я столкнулся со странной ситуацией здесь:

У меня есть форма, эта форма имеет несколько категорий, которые загружаются через 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);
?>

Который возвращает мне следующий вывод:

[{ «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 — на самом сайте дважды появляются только значения)

Что может быть здесь происходит? Я не могу понять, где это не так.

Может быть важно отметить, что у меня есть схожий 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);
?>

0

Решение

Итак, похоже, что я нашел ошибку (и она действительно глупая).

Я подумал, что не было проблем с запуском 2-х файлов php в одном и том же коде (а это не так), но я не знал, что не могу назвать имена двух файлов одинаковыми, поэтому вывод $ из первого php был появляется во втором php-файле, и в результате я получаю $ output $ output.

Изменение имени второго файла на $ output2 решило эту проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector