2013-05-16 2 views
-2

У меня есть два вопроса. Я хочу первым, чтобы знать, что можно сделать что-то так ... я получил HTML страницу с 2 формами, которые используют один и тот же скрипт ..html form processing php script

<?php 

    if ($conn) { 
     if (isset($_POST['form_student'])) { 
      if ($_POST['form_student'] == 'Send') { 
       if (isset($_POST['first_name']) && isset($_POST['last_name']) && isset($_POST['student_id']) && isset($_POST['gen'])) { 
        echo "<script>alert('Send information to the database.');</script>"; 
       } else { 
        echo "<script>alert('You didn't fill in all fields!');</script>"; 
       } 
      } 
     } 
     if (isset($_POST['form_subject'])) { 
      if ($_POST['form_subject'] == 'Send') { 
       if (isset($_POST['subject_id']) && isset($_POST['class_room']) && isset($_POST['day'])) { 
        echo "<script>alert('Send information to the database.');</script>"; 
       } else { 
        echo "<script>alert('You didn't fill in all fields!');</script>"; 
       } 
      } 
     } 
    } 

?> 

Хорошо, так что первый вопрос о, является возможно, каким образом я это делаю, чтобы обработать этот скрипт действия и показать это окно предупреждения в html, не перенаправляя меня на script.php и не показывая мне сообщение. Второй вопрос: он всегда повторяется, даже если я не заполнял все поля, вместо того, чтобы показывать мне ложный случай.

+0

попробуйте сравнить значение столбца с «» для каждого поля. isset истинно, если поле существует для этой формы. http://stackoverflow.com/questions/9986761/isset-function-is-returning-true-even-when-item-is-not-set-php-mysql –

ответ

0

Вы могли бы быть заинтересованы в чтении этого учебника:

http://jorenrapini.com/blog/javascript/the-simple-quick-and-small-jquery-html-form-validation-solution

+0

em I 'm не разрешено использовать jquery btw .. я знаю для этого, но .. –

+0

О, ладно ... Извините :) Вы можете добавить скрипт на страницу формы ... и перенаправить свою информацию о форме в "self" ... – Pieterjan

+0

Да, я тоже собирался спросить об этом. Например, где я мог бы разместить эту строку заголовка и как выглядит код. Я новичок в php, поэтому ... –

0

Ознакомьте себя с помощью AJAX, он используется для извлечения информации из PHP-скрипта без обновления браузера.

относительно вашего второго вопроса, попробуйте empty() вместо isset() isset проверяет, не поля ли они.

+0

Невозможно использовать ajax .. что вы думаете о том, чтобы перевернуть html-страницу в расширение php, а не просто обрабатывать скрипт.php через действие, делать проверки перед формой на той же странице ... –

+0

Однако я также попытался удалить() , не сработало:/ –

+0

Распечатайте значения массива $ _POST, причина, по которой if возвращается true, должна быть из-за того, что эти поля не являются пустыми. – Tralli

0

Вызов isset($_POST['paramName']) для проверки того, что что-то не работает. Параметр будет SET, даже если его empty. (Но это SET!) (Исключение: галочки)

Поэтому вместо этого вы должны использовать isset($_POST['paramName']) && !empty($_POST["paramName"]).

На ваш первый вопрос: не нацеливайте script.php. Используйте ту же цель, содержащую форму, и поместите туда логику (или INCLUDE script.php). Затем пользователь останется на странице, увидев сообщение или нет.

+0

Да, похоже, что это сработало, но теперь я пришел к идее, чтобы повторить «You не заполнил все поля! " и он печатает его, что кажется, что isset ($ _ POST ['paramName']) &&! empty ($ _ POST ["paramName"]) работает .. но по какой-то причине я не понимаю, почему не хочет запускать « "; –