【发布时间】:2017-05-11 08:20:29
【问题描述】:
我正在尝试向 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;
为什么第一个字段集数据发布了,而第二个是空白的?
【问题讨论】:
-
因为收音机的名称与文本输入相同。
-
与您的问题无关,但是:标签
for应该有一个 id 作为值,而不是一个类型。 -
哇!!好吧,我没看到。我更新了代码。但是我得到了一个“on”,我在其中回显 $row['appleLikes'];。对于标签部分,您对标签的看法是正确的,因为我接下来要讲。
标签: php mysql pdo radio-button