Я пытаюсь получить данные формы, хранящиеся в базе данных mysql. Я хочу, чтобы все, что пользователь набирает или кликает, должен храниться там. Я могу успешно сохранить мои текстовые поля в mysql. Мне трудно понять, как отправить несколько флажков, переключателей и выпадающих списков в mysql и сохранить их там. Я даже не знаю, с чего начать. Пожалуйста помоги.
Также обратитесь к этому.
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) );
Попробуйте сыграть со следующим PHP-скриптом, чтобы узнать, что отправляется (а что нет) при выборе и опускании определенных элементов формы.
<?php if (sizeOf($_POST) > 0) print_r($_POST); ?> <form method="POST" action="."> <input type="checkbox" name="checkbox" id="checkbox" /> <label for="checkbox">Checkbox</label> <input type="radio" name="radio" value="1" id="radio_1" /> <label for="radio_1">Radio 1</label> <input type="radio" name="radio" value="2" id="radio_2" /> <label for="radio_2">Radio 2</label> <select name="select"> <option value="1">1</option> <option value="2">2</option> </select> <input type="submit" /> </form>
Вы увидите, что если флажок установлен, соответствующее значение POST формы будет установлено на «on». Радиокнопка будет установлена на ее значение, как и выбор.
Обратите внимание, что все элементы формы, отправленные на страницу action
, вводятся по их name
.
Ваши входные данные для отказа от отказа являются пропущенными значениями, поэтому $ _POST ['waiver'] всегда будет пустым. Исправлено:
<input type="radio" name="waiver" value="yes"> <input type="radio" name="waiver" value="no">
В ваших полях флажков можно установить такие переменные (просто проверьте, установлены ли они):
$jesse_van_anterp_huyck_scholarship = isset($_POST["jesse_van_anterp_huyck_scholarship"]) ? 1 : 0;
FYI: Ваши поля varchar (30) могут быть недостаточно длинными, чтобы хранить строки типа «Jesse Van Anterp Huyck Scholarship»