单选按钮数据不显示在第二个字段集中

时间:2016-12-27 03:05:42

标签: php mysql pdo radio-button

我正在尝试向MySQL提交数据,由于某种原因,该值在第一个单选按钮<fieldset>中传递,而在另一个<fieldset>中没有传递。这是我的代码,可以进一步解释。

<?php
    require 'inc/database.php';

    $pdo = Database::connect();
    $getLikes = $pdo->prepare('SELECT * FROM fieldTest ORDER BY id DESC');
    $getLikes->execute();

    if($getLikes->rowCount() > 0) {
        while ($row = $getLikes->fetch()) {

echo '<div>';
echo '<form>';
echo '<div>';
echo '<p>';
 echo '<label>I like...<br>';
echo $row['appleColor'];
echo '</label>';
echo '</p>';
echo '<br>';
echo '<p>';
 echo '<label>I like...<br>';
echo $row['appleLikes'];
echo '</label>';
echo '</p>';

echo '</div>';
echo '</form>';

echo '</div><!--end of container-->';
                        echo '<br>';


?>

<form method="POST" action="likespost.php">

<!--FirstFieldSet-->
<fieldset>
         <h2>What color of apples do you like?</h2>
            <div class="inline-field">
            <input type="radio" id=""  name="appleColor" value="Green"   >
            <label>Green</label>
            </div>
            <div class="inline-field">
            <input type="radio" id=""  name="appleColor" value="Red"   >
            <label>Red</label>
            </div>


</fieldset>
<!--SecondFieldSet-->
<fieldset>
         <h2>How do you like your apples?</h2>
            <div class="inline-field">
            <input type="radio" id=""  name="appleLikes" value="In a beer."   >
            <label>In a beer.</label>
            </div>
            <div class="inline-field">
            <input type="radio" id=""  name="appleLikes" value="As a juice."   >
            <label>As a juice.</label>
            </div>
            <div class="inline-field">
            <input type="radio" id="" name="appleLikes" >
            <label for="radio">Other</label>
            <input id="" type="text"   name="appleLikes" placeholder="Please Explain...">
            </div>
</fieldset>

<button type="submit" class="btn btn-success">Post Likes</button>

</form>

以下是将数据发布到MySQL的likespost.php。

<?php
  require 'inc/database.php';

    if (!empty($_POST)) {

        $appleColor = $_POST['appleColor'];
        $appleLikes = $_POST['appleLikes'];



        $valid = true;

        if ($valid) {
            $pdo = Database::connect();
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = 'INSERT INTO fieldTest (appleColor, appleLikes) values(?, ?)';
            $q = $pdo->prepare($sql);
            $q->execute(array($appleColor, $appleLikes));
            Database::disconnect();
            header('Location: fieldTest.php');
        }
    }


?>

这是我的SQL。

CREATE TABLE `fieldTest` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `appleColor` varchar(100) NOT NULL,
    `appleLikes` varchar(100) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

为什么第一个字段集数据会被发布但第二个字段集是空白的?

1 个答案:

答案 0 :(得分:1)

为什么对单选按钮和文本字段使用相同的字段名称(appleLikes)?

实际上,您正在获取文本字段的值(空白),而不是单选按钮的值,因为文本字段位于单选按钮之后。

尝试为文本字段使用不同的名称。

相关问题