EDIT: спасибо за помощь. Получил сообщение по электронной почте о том, что нам не нужна клиентская сторона, поэтому я отказался от этой идеи в пользу фактического завершения задания вовремя.
Прежде чем спросить: «Да, это работа по назначению. Нет. Я не ищу код, который вам нужен. Я новичок практически не имеет опыта работы с HTML / PHP / javascript, но это вторая часть задания, поэтому у меня уже есть часть моего собственного кода из первой части, что было очень легко по сравнению с этой частью. В задаче конкретно не говорится, что мы должны использовать проверку на стороне клиента, но я считаю, что это будет хорошая практика.
Мне нужно, чтобы кто-то четко показал мне, как использовать проверку на стороне клиента и сервера. У меня уже есть проверка javascript, но я могу изменить его, поскольку он отображает окно предупреждения для каждой ошибки. Я НЕ МОЖЕТ использовать сторонний код, такой как jQuery, который, по-видимому, всем нравится в Интернете, и курс, который я делаю, не любит на самом деле научить нас полезному контенту, поэтому мы все сами по себе.
Затем данные из формы будут введены в базу данных через MySQL (что я не ожидаю делать), и, просмотрев минимальную информацию из w3schools по этой теме, я понимаю, что мне нужно отправить форму самому себе.
Сама форма довольно проста: содержит имя, DoB, email, почтовый индекс и т. Д. Мой текущий .js использует только альфа, только число, формат даты, формат электронной почты, переключатель и флажок, и каждое поле проверено, чтобы убедиться, что оно не является 'Пусто.
Я полагаю, что то, что мне нужно, – это полный учебник о том, как это сделать. Мой интернет-поиск был бесплодным, но по крайней мере у меня все еще есть неделя, пока это не произойдет.
Любая помощь приветствуется, но простая и ясная помощь будет тем более. Я продолжу пробовать интернет за помощью до тех пор и возвращаться сюда, если найду полезный материал для кого-то другого с той же проблемой (что я уверен, это 90% моего класса …..)
Заранее спасибо.
Прочтите приведенный ниже код. Надежные встроенные комментарии отвечают на ваш вопрос.
add_record.php
<?php if(isset($_POST['name'])) { //get post data $name = trim($_POST['person_name']); $email = trim($_POST['email']); $message = trim($_POST['message']); //This is server-side check! if (strlen($name) > 10){ echo "FAILED! You tried to submit a name which is greater than 10 chars." }else{ //insert to the database here.. //and send out a "success message or render HTML echo "SUCCESS!"; } }else { echo "Error! Proper parameters were not provided!"; }
a.html
<html> <head> <script type="text/javascript"> function checkForm(){ //client side (JS) validation. This happens before submitting. var name = document.forms[0].person_name.value; if (name.length > 10){ alert("Name is too long"); return false; } //do some more checks here.. //return true if all checks have passed, false otherwise. //the return value of this function is checked before submit. The form is submitted only when this function returns a true. return true; } </script> </head> <body> <form action="add_record.php" method="POST" onsubmit="return checkForm()"> Name: <input type="text" name="person_name"/> Email: <input type="text" name="email"/> Message: <input type="text" name="message"/> <input type="submit"/> </form> </body> </html>
EDIT : Как отметил mplungjan, неплохо иметь поле с именем «имя» внутри форм. Сам объект формы может иметь «имя», которое может конфликтовать.
Поскольку это домашнее задание, я должен хотя бы указать вам на несколько ресурсов:
Сторона клиента
Для проверки:
Не переходите к AJAX сразу, это продвинутый материал. Сначала создайте основы и просто отправьте форму на PHP (например, обновление страницы и PHP перерисовывают форму, если есть какие-либо проблемы с проверкой).
Серверная сторона
Для проверки: http://www.php.net/filter – примеры
Для работы с базой данных: http://www.php.net/pdo – учебник
Для проверки на стороне сервера вы должны отправить данные формы на страницу php с помощью метода = «post», а затем проверить правильный формат. Что-то вроде:
<form action="validate.php" method="post"> <!-- form fields --> </form>
В validate.php вы используете $ _POST ["var_name"], где var_name – это имя ваших полей ввода, чтобы проверить данные. Так, например, что-то вроде:
$age = $_POST["age"]; if (ctype_digit($age) && $age > 0) { // correct format }
Похоже, что вы уже прошли проверку на стороне клиента. Я не совсем уверен, правильно ли понял вашу проблему, – сообщите мне, где конкретно у вас проблемы, и я постараюсь помочь.