需要帮助存储复选框,单选按钮和下拉菜单数据在mysql [英] Need help storing check box, radio button, and drop down menu data in mysql
问题描述
我试图让我的表单数据存储在mysql数据库中。我想让用户键入或点击的所有内容存储在那里。我可以有我的文本字段存储在mysql成功。我有麻烦了解如何发送多个复选框,单选按钮和下拉列表到mysql,并将其存储在那里。我甚至不知道从哪里开始。请帮忙。
I am trying to have my form data stored in a mysql database. I want everything that the user types or clicks to be stored there. I am able to have my text fields stored in mysql successfully. I am having trouble figuring out how to send multiple check boxes, radio buttons, and drop down lists to mysql and have it stored there. I don't even know where to begin. Please help.
也请参阅这个。
php和mysql - 发送复选框,单选按钮和下拉菜单结果从用户到mysql数据库并存储在那里
session_start();
function logged_in() {
return isset($_SESSION['user_id']);
}
function confirm_logged_in() {
if (!logged_in()) {
redirect_to("contact info.php");
}
}
// Database Constants
define('DB_SERVER', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'wer_application');
function check_required_fields($required_array) {
$field_errors = array();
foreach($required_array as $fieldname) {
if (!isset($_POST[$fieldname]) || (empty($_POST[$fieldname]) && !is_numeric($_POST[$fieldname]))) {
$field_errors[] = $fieldname;
}
}
return $field_errors;
}
function check_max_field_lengths($field_length_array) {
$field_errors = array();
foreach($field_length_array as $fieldname => $maxlength ) {
if (strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) { $field_errors[] = $fieldname; }
}
return $field_errors;
}
function display_errors($error_array) {
echo "<p class=\"errors\">";
echo "Please review the following fields:<br />";
foreach($error_array as $error) {
echo " - " . $error . "<br />";
}
echo "</p>";
}
// START FORM PROCESSING
if (isset($_POST['submit'])) { // Form has been submitted.
$errors = array();
// perform validations on the form data
$required_fields = array('id','student_gender', 'student_session_one_preference', 'student_session_two_preference',
'waldron_scholarship', 'jesse_van_anterp_huyck_scholarship', 'edward_raney_scholarship', 'school_type',
'student_statemenet_consent_check_box', 'guardian_statemenet_consent_check_box', 'waiver');
$errors = array_merge($errors, check_required_fields($required_fields, $_POST));
$errors = array_merge($errors, check_max_field_lengths($fields_with_lengths, $_POST));
//Captures what is typed by the user
if(!empty($_POST) && isset($_POST["submit-btn"])){
$student_gender = isset($_POST["student_gender"]) ? $_POST["student_gender"] : "";
$student_session_one_preference = isset($_POST["student_session_one_preference"]) ? $_POST["student_session_one_preference"] : "";
$student_session_two_preference = isset($_POST["student_session_two_preference"]) ? $_POST["student_session_two_preference"] : "";
$waldron_scholarship = isset($_POST["waldron_scholarship"]) ? $_POST["waldron_scholarship"] : "";
$jesse_van_anterp_huyck_scholarship = isset($_POST["jesse_van_anterp_huyck_scholarship"]) ? $_POST["jesse_van_anterp_huyck_scholarship"] : "";
$edward_raney_scholarship = isset($_POST["edward_raney_scholarship"]) ? $_POST["edward_raney_scholarship"] : "";
$school_type = isset($_POST["school_type"]) ? $_POST["school_type"] : "";
$student_statemenet_consent_check_box = isset($_POST["student_statemenet_consent_check_box"]) ? $_POST["student_statemenet_consent_check_box"] : "";
$guardian_statemenet_consent_check_box = isset($_POST["guardian_statemenet_consent_check_box"]) ? $_POST["guardian_statemenet_consent_check_box"] : "";
$waiver = isset($_POST["waiver"]) ? $_POST["waiver"] : "";
//sends the data from the form into our database we made with mysql.
$sql = "INSERT INTO nature VALUES ('id','$student_gender', '$student_session_one_preference', '$student_session_two_preference',
'$waldron_scholarship', '$jesse_van_anterp_huyck_scholarship', '$edward_raney_scholarship', '$school_type',
'$student_statemenet_consent_check_box', '$guardian_statemenet_consent_check_box', '$waiver')";
if(!mysql_query($sql)){
die('Error: ' . mysql_error());
}
}
<html>
<head>
<title>WER Application Packet</title>
<link href="stylesheets/public.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<h1>WER Application Packet</h1>
</div>
<div id="main">
<table id="structure">
<tr>
<td id="page">
<?php if (!empty($message)) {echo "<p class=\"message\">" . $message . "</p>";} ?>
<?php if (!empty($errors)) { display_errors($errors); } ?>
<form action="contact info.php" method="post">
<form method="POST">
<input type="radio" name="student_gender" value="Male">Male<br>
<input type="radio" name="student_gender" value="Female">Female<br>
<select name="student_session_one_preference">
<option value="Session 1">Session 1: June 30 - July 21</option>
<option value="Session 2">Session 2: July 28 - August 18</option>
</select> <br/>
Preference 2:
<select name="student_session_two_preference">
<option value="Session 1">Session 1: June 30 - July 21</option>
<option value="Session 2">Session 2: July 28 - August 18</option>
</select>
<input type="checkbox" name="waldron_scholarship" value="Waldron Scholarship">Waldron Scholarship<br/>
<input type="checkbox" name="jesse_van_anterp_huyck_scholarship" value="Jesse Van Anterp Huyck Scholarship">Jesse Van Anterp Huyck Scholarship<br/>
<input type="checkbox" name="edward_raney_scholarship" value="Edward Raney Scholarship">Edward Raney Scholarship<br/>
<select name="school_type">
<option value="Public">Public</option>
<option value="Private">Private Parochial</option>
<option value="Other">Other</option>
</select>
<input type="radio" name="waiver" value="">I waive any right of access that I may have to information submitted by my referee<br>
<input type="radio" name="waiver" value="">I do not waive any right of access that I may have to information submitted by my referee<br>
<input type="checkbox" name="student_statement_consent_check_box" value="Agree">By checking this box, the student acknowledges <br/> that they have read the statement <br/> of consent and agrees with it.<br>
<input type="checkbox" name="guardian_statement_consent_check_box" value="Agree">By checking this box, the guardian acknowledges <br/> that they have read the statement <br/> of consent and agrees with it.<br>
<input type="submit" value="Submit" name="submit-btn">
</form>
</td>
</tr>
</table>
</div>
<div id="footer"></div>
</body>
</html>
<?php
// 5. Close connection
mysql_close($connection);
?>
CREATE TABLE nature(
ID int NOT NULL auto_increment,
student_gender varchar(6),
student_session_one_preference varchar(30),
student_session_two_preference varchar(30),
waldron_scholarship tinyint,
jesse_van_anterp_huyck_scholarship tinyint,
edward_raney_scholarship tinyint,
school_type varchar(25),
student_statemenet_consent_check_box tinyint,
guardian_statemenet_consent_check_box tinyint,
waiver tinyint,
PRIMARY KEY(ID)
);
推荐答案
您的都是缺失值,因此$ _POST ['waiver']将始终为空。修正这样:
Your waiver radio inputs are both missing values, so $_POST['waiver'] will always be empty. Fix like this:
<input type="radio" name="waiver" value="yes">
<input type="radio" name="waiver" value="no">
您的复选框字段可以设置这样的变量(只要检查是否设置):
Your checkbox fields can set the variables like this (just check if set):
$jesse_van_anterp_huyck_scholarship = isset($_POST["jesse_van_anterp_huyck_scholarship"]) ? 1 : 0;
FYI:您的varchar(30)字段可能不足以存储字符串Jesse Van Anterp惠氏奖学金
FYI: Your varchar(30) fields may not be long enough to store strings like "Jesse Van Anterp Huyck Scholarship"
这篇关于需要帮助存储复选框,单选按钮和下拉菜单数据在mysql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!