PHP микширование серверного кода с выводом HTML - PullRequest
1 голос
/ 21 декабря 2009

Я пишу небольшой скрипт, который будет принимать данные формы и что-то с ними делать. Если это не удается, он показывает ошибку и форму снова. Если это удастся, он покажет сообщение об успехе.

Внутренний код использует классы, которые выдают исключения, если в данных формы есть ошибка. Вызовы к классам будут упакованы в try {} catch {}.

Как лучше всего показать форму дважды?

Мне нужно что-то вроде:

If form submitted: 

   Try:
      Add the account via class
   Catch:
      Echo the error
      Show the form 

   Echo succcess

Else:
   Show the form

Ответы [ 3 ]

2 голосов
/ 21 декабря 2009

Для простых форм я написал так:

<?php

   if (isset($_POST['submit']))
   {
   $errorFound=0;

   if (empty($_POST['form_variable']))
   { 
     $errorFound=1; 
     $error_str="empty string";
   }

   if (!$errorFound) // if no errors, process the form!
   { 
   //process whatever you do with it - redirect to another page
   }

  }
 ?> 
 <form action="name.php">
 <div> <input name='form_variable'> 
 <?php if ($errorFound) {echo $error_str} ?>
 </div> 
 <input type=submit name=submit>
 </form> 

Что происходит, если он никогда не будет отправлен, он сразу перейдет к html-форме и отобразится, но если вы отправили сообщение и произошла ошибка, php снова отобразит форму с echo'd error_st после тега input ,

1 голос
/ 21 декабря 2009

Вы можете делать все эти вещи очень легко с помощью smarty, как шаблонный движок. Это точно так же, как ваш вопрос

{Если отправлено $ form eq)} * ​​1003 *

{if $ success} Добавить аккаунт через класс {} Еще Эхо ошибка Показать форму

Эхо успеха {/если} {} Еще Показать форму {/}, Если

Или, если вы хотите сделать это только на php, просто используйте метод netrox. Это хорошо.

и это еще один концептуальный вызов heredoc в php. Вы можете включить свой HTML в PHP очень просто.

1 голос
/ 21 декабря 2009

Кодирование HTML для формы в переменной и вывод переменной в обоих местах.

$form = "<form>...</form";

if ($_POST) {
  if (addAccount($fname,$email)) {
    print "Success";
  } else {
    print "Errors";
    print $form;
  }
} else {
  print $form;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...