#javascript #php #html #jquery #ajax
Вопрос:
у меня есть простая форма, в которой, когда пользователь выбирает поле выбора, другое поле выбора будет отображать значения, основанные на нем, это простая страница PHP, поэтому я просто сделал это с двумя полями выбора на простой странице, и она работает нормально, как вы можете видеть здесь:
теперь я реализовал его в своей реальной форме на веб-сайте, который находится здесь:
однако это дает мне пустые значения, коды, как показано ниже:
$(document).ready(function() {
$("#type").change(function() {
var val = $(this).val();
if (val == "2") {
$("#size").html("<?php
$ret = mysqli_query($con, "select * from modelssubcat where cat_id='2'");
while ($row = mysqli_fetch_array($ret)) {
?
> < option value = '<?php echo $row["subcat_name"];?>' > <?php echo $row["subcat_name"];?> < /option><?php }?>");
} else if (val == "3") {
$("#size").html("<?php
$ret = mysqli_query($con, "select * from modelssubcat where cat_id='3'");
while ($row = mysqli_fetch_array($ret)) {
?
> < option value = '<?php echo $row["subcat_name"];?>' > <?php echo $row["subcat_name"];?> < /option><?php }?>");
} else if (val == "4") {
$("#size").html("<?php
$ret = mysqli_query($con, "select * from modelssubcat where cat_id='4'");
while ($row = mysqli_fetch_array($ret)) {
?
> < option value = '<?php echo $row["subcat_name"];?>' > <?php echo $row["subcat_name"];?> < /option><?php }?>");
} else if (val == "5") {
$("#size").html("<?php
$ret = mysqli_query($con, "select * from modelssubcat where cat_id='5'");
while ($row = mysqli_fetch_array($ret)) {
?
> < option value = '<?php echo $row["subcat_name"];?>' > <?php echo $row["subcat_name"];?> < /option><?php }?>");
}
});
});
<?php
session_start();
include("inc/connection.php");
?>
<!DOCTYPE html>
<html lang="en" class="loading">
...........
<form method="post" enctype="multipart/form-data">
<div class="card-body">
<div class="card-block">
<div class="col-md-6">
<div class="form-group">
<label for="image">Category Name</label>
<select id="type" class="form-control" name="cat_id">
<option>--Select Category--</option>
<?php
$ret=mysqli_query($con,"select * from modelscat");
while ($row=mysqli_fetch_array($ret)) {
?>
<option value="<?php echo $row['cat_id'];?>">
<?php echo $row['cat_name'];?>
</option>
<?php }?>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="image">SubCategory Name</label>
<select id="size" class="form-control" name="subcat_id">
<option>--Select Subcategory--</option>
</select>
</div>
</div>
.................
может кто-нибудь, пожалуйста, сказать мне, что здесь не так, заранее спасибо
Комментарии:
1. Вы уверены, что ваш $con является допустимым подключением к БД ?
2. @KenLee да, братан, первый вариант выбора исходит только из базы данных, он поступает правильно
3. Закройте соединение с помощью
mysqli_close($con);
, прежде чем выполнять следующее соединение/запрос, и посмотрите результат.4. В общем случае вы не должны использовать SQL-запросы в циклах, это плохо сказывается на производительности во время выполнения. Вместо этого используйте объединения для объединения таблиц и выполнения только одного запроса.
5. @Ларсстегелиц ок, братан