В настоящее время у меня возникли проблемы с использованием переключателя, я запутался из-за вывода моих кодов. На левом изображении это то, что было у меня на выходе, на правом изображении я хочу, чтобы мой результат был таким. Когда я выбираю из кандидатов, можно выбрать оба переключателя, вместо того, чтобы выбрать только один.

Вот мой код:

   <?php
 $YearNow=Date('Y');
 $dsds=$rowasa['posid'];
 $results = $db->prepare("SELECT * FROM candidates,student,school_year,partylist where student.idno = candidates.idno AND school_year.syearid = candidates.syearid AND posid =:a AND candidates.partyid = partylist.partyid AND  school_year.from_year like $YearNow  ");

                $results->bindParam(':a', $dsds);
                $results->execute();
                for($i=0; $rows = $results->fetch(); $i++){
                ?>
        //here's the part that i was confuse    


    <input type ="radio"><input style="padding: 35px 50px 35px 80px; background:url('admin/candidates/images/<?php echo $rows['image']; ?>')  no-repeat scroll 5px 7px / 70px auto rgba(0, 0, 0, 0);"  
    value="<?php echo $rows['candid'] . "-" ."&nbsp". $rows['lastname'] .",". "&nbsp". $rows['firstname'] ?>"><?php echo $rows['lastname'] ?>,
                        <?php echo $rows['firstname'] ?>

                    - <?php 
                            echo $rows['party_name']?>
                        <?php

                }

            ?>

An example image

0
miming 26 Фев 2016 в 05:46

2 ответа

Лучший ответ

Похоже, ваш SQL-запрос дает правильные результаты, однако я бы действительно посмотрел на использование JOINs. Тем не менее, я предполагаю, что ваши результаты SQL выглядят примерно так:

$candidates = array(
    array(
        "id" => "1",
        "firstname" => "John",
        "image" => "some/image/path",
        "party_name" => "Party1",
    ),
    array(
        "id" => "2",
        "firstname" => "Jane",
        "image" => "some/image/path",
        "party_name" => "Party2",
    )
);

Чтобы повторить это и создать свой HTML, будет намного проще использовать foreach вот так:

<form method="post" action="submit.php">
    <?php
    foreach ($candidates as $candidate) {
        ?>
        <div class="box">
            <div class="image">
                <img src="admin/candidates/images/<?php echo $candidate['image']; ?>" alt="">
            </div>
            <div class="input">
                <input type="radio" name="candidate_selected" value="<?= $candidate['id'] ?>">
            </div>
            <div class="text">
                <?php echo $candidate['firstname'] . " - " . $candidate['party_name'] ?>
            </div>
        </div>
        <?php
    }
    ?>
    <input type="submit">
</form>

Обратите внимание на то, что input имеет то же имя и id результатов вашего кандидата. После отправки вы должны увидеть только id выбранного кандидата в вашем обработчике submit.php.

Теперь добавьте немного CSS:

.box {
    display: inline-block;
    text-align: center;
}

.box .image {
    padding: 15px;
}

.box .image img {
    width: 150px;
    height: 150px;
    display: block;
}

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

0
CodeGodie 26 Фев 2016 в 04:05

Попробуйте повторить радио-кнопку вот так.

 <?php
 $YearNow=Date('Y');
 $dsds=$rowasa['posid'];
 $results = $db->prepare("SELECT * FROM candidates,student,school_year,partylist where student.idno = candidates.idno AND school_year.syearid = candidates.syearid AND posid =:a AND candidates.partyid = partylist.partyid AND  school_year.from_year like $YearNow  ");

                $results->bindParam(':a', $dsds);
                $results->execute();
                for($i=0; $rows = $results->fetch(); $i++){

        //here's the part that i was confuse    


    echo "<input type ='radio'><input style='padding: 35px 50px 35px 80px; background:url('admin/candidates/images/". $rows['image'] . "')  no-repeat scroll 5px 7px / 70px auto rgba(0, 0, 0, 0);  
    value='" . $rows['candid'] . " - "$rows['lastname'] ", ". $rows['firstname'] . "'>" . $rows['lastname'] . "," . $rows['firstname'];
echo $rows['firstname'] ." - ". $rows['party_name'];


                }

            ?>
0
Lee Balino 26 Фев 2016 в 04:04