По сути, у меня есть 1 поле выбора в верхней части моей страницы, называемое чашками. На каждый кубок назначено 8 команд. После выбора кубка и нажатия кнопки «Отправить» я хочу, чтобы все команды, связанные с этим кубком, заполнили 8 полей выбора в другом месте на странице, позволяя пользователю выбрать, какая команда играет с другой.
Я пробовал много вещей, и я дошел до того, что могу повторить команды, они просто не отображаются в полях выбора в другом div на той же странице.
<input type = "submit" name = "submit" value = "Generate" class = "submit">
<?php
if (isset($_POST['submit'])) { //checking if submit button was clicked
include_once 'action/dbcon.php';
$cname = $_POST['cupname'];
if (empty($cname)) {
header("Location: ../table.php?field=empty"); //return them if fields are empty
exit();
} else {
$sql = "SELECT * FROM teams WHERE cup_name='$cname'";
$show_teams = mysqli_query($conn, $sql);
if (!$show_teams) {
echo "Could not load teams! " . "(" . mysqli_error($conn) . ")";
}
while ($team = mysqli_fetch_assoc($show_teams)) {
echo $team["team_name"];
}
}
echo "dank";
}
?>
</form>
<div class = "seed-container">
<div class = "column-1">
<form class = "seed-form">
<select name = "team" required>
<option></option>
</select>
<select name = "team" required>
<option></option>
</select>
Итак, я повторяю правильные результаты, а не как варианты в полях выбора, где я хочу их






проще всего повторить их там, где они должны появиться:
<select name = "team" required>
<?php while ($team = mysqli_fetch_assoc($show_teams)) { ?>
<option value = "<?php echo $team["team_id"]; ?>"><?php echo $team["team_name"]; ?></option>
<?php } ?>
</select>
Это то, что я пытался включить, однако я смущен тем, где находится уже написанный PHP-код перед оператором while. Не могли бы вы привести пример? Спасибо
@BradArcher, разве я уже не привел хороший минимальный пример? просто переместите этот цикл... или выберите все записи, а затем выполните цикл дважды. единственное, что здесь сбивает с толку, это то, что вы не указали поля набора записей и не получили ожидаемого результата... и не выбрали значения параметров. Обычно для такого вывода можно было бы использовать механизм шаблонов.
прошу прощения, я не понял, что части работают сейчас. Быстрый вопрос: знаете ли вы способ удаления их из поля выбора после того, как пользователь выбрал эту конкретную запись?
Кстати, этот код работает только для одного выбора, когда та же строка кода используется в другом, он не загружает никаких результатов.
Вы можете справиться с этим с помощью jQuery. В моем примере я просто вырезал и вставил один из моих сценариев cms.
Форма ниже включена в более крупную форму, поэтому тег формы и подпрограмма не включены в пример.
Форма:
<?php
echo '<div class = "row">';
# page-type
echo '<div class = "col_3">';
$getPgType = $db->prepare('SELECT page_type_id, page_type FROM page_types WHERE page_type_id >= 1 order by page_type asc');
$getPgType->execute();
echo '<label>Page Type</label><br>';
echo '<select id = "" name = "page_type" class = "expand">';
echo '<option value = ""'; if ($page_type == ''){echo 'selected';} echo '>Select Page Type</option>';
while($row = $getPgType->fetch(PDO::FETCH_ASSOC)){
$id = $row['page_type_id']; $pagetype = $row['page_type'];
echo '<option value = "'.$pagetype.'"'; if ($page_type == $pagetype){echo 'selected';} echo '>'.ucwords($pagetype) .'</option>';
}
echo '</select>';
echo '</div>';
# classification_type
echo '<div class = "col_3">';
echo '<label for = "classification_type">Classification Type</label><br>';
echo '<select id = "classificationType" name = "classification_type" class = "expand">';
echo '<option value = ""'; if ($classification_type == ''){echo 'selected';} echo '>Select Classification Type</option>';
echo '<option value = "classification"'; if ($classification_type == 'classification'){echo 'selected';} echo '>Classification</option>';
echo '<option value = "category"'; if ($classification_type == 'category'){echo 'selected';} echo '>Category</option>';
echo '<option value = "content"'; if ($classification_type == 'content'){echo 'selected';} echo '>Content</option>';
echo '</select>';
echo '</div>';
# classification
echo '<div class = "col_3">';
$selstmt = $db->prepare('SELECT classification_id, classification FROM classifications WHERE classification_id >= 1');
$selstmt->execute();
echo '<label>Classification</label><br>';
echo '<select id = "getAssignedCats" name = "classification" class = "expand">';
echo '<option value = ""'; if ($classification == ''){echo 'selected';} echo '>Select Classification</option>';
while($row = $selstmt->fetch(PDO::FETCH_ASSOC)){
$classification_id = $row['classification_id']; $classN = $row['classification'];
echo '<option value = "'.$classification_id.'"'; if ($classification == $classification_id){echo 'selected';}
echo '>'.ucwords(str_replace('-',' ',$classN)).'</option>';
}
echo '</select>';
echo '</div>';
# category
echo '<div id = "categoryHTML" class = "col_3"></div>';
echo '</div>';
?>
Обратите внимание на <div id = "categoryHTML" class = "col_3"></div>... здесь jQuery отображает желаемое поле выбора.
jQuery
/* PARSE GET ASSIGNED CATEGORIES
======================================================================================== */
$("#getAssignedCats").change(function(){
var type = $("#classificationType").val();
if (type != 'classification'){
var class_id = $(this).val();
var url = 'parse/get-assigned-categories.php';
var postit = $.post( url, {class_id:class_id});
postit.done(function( data ) {$('#categoryHTML').html(data);});
}
});
Когда поле выбора #getAssignedCats изменяется пользователем, jquery собирает значение и отправляет его в файл parse.php.
Парсинг PHP
<?php
$level = '../../../';
include($level.'core/ini/start.php');
$class_id = $_POST['class_id'];
if ($class_id != 888888){
$selCat = $db->prepare('SELECT cat_id, category FROM categories WHERE classification = :THEID ORDER BY category asc');
$selCat->bindValue(':THEID',$class_id,PDO::PARAM_INT); $selCat->execute(); $cat_ct = $selCat->rowCount();
echo '<label>Category</label>';
echo '<select name = "category" class = "expand">';
echo '<option value = ""'; if ($category == ''){echo 'selected';} echo '>Select Parent category</option>';
if ($cat_ct <= 0){
echo '<option value = "777777"'; if ($category == '777777'){echo 'selected';} echo ' class = "blue">This is a Category Page</option>';}
elseif ($cat_ct >= 1){
while($row = $selCat->fetch(PDO::FETCH_ASSOC)){
$cat_id = $row['cat_id'];
$category = $row['category'];
echo '<option value = "'.$cat_id.'"'; if ($category == $cat_id){echo 'selected';}
echo '>'.ucwords(str_replace('-',' ',$category)).'</option>';
}
}
echo '</select>';
}
?>
Надеюсь это поможет.