我正在尝试向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;
为什么第一个字段集数据会被发布但第二个字段集是空白的?
答案 0 :(得分:1)
为什么对单选按钮和文本字段使用相同的字段名称(appleLikes)?
实际上,您正在获取文本字段的值(空白),而不是单选按钮的值,因为文本字段位于单选按钮之后。
尝试为文本字段使用不同的名称。