Ошибка заполнения поля выбора с помощью PHP из базы данных - PullRequest
0 голосов
/ 28 марта 2019

По сути, у меня есть 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>

Итак, я повторяю правильноеРезультаты, а не как параметры в полях выбора, где я хочу их

Ответы [ 2 ]

1 голос
/ 28 марта 2019

проще всего было бы повторить их там, где они должны появиться:

<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>
0 голосов
/ 28 марта 2019

Вы можете справиться с этим с помощью jQuery - в моем примере я просто вырезал и вставил из одного из моих скриптов cms.

Форма ниже включена в увеличенную форму, поэтому тег формы и submot не находятся впример.

Форма:

<?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>';
    }
?>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...