首页 > 解决方案 > 提交后如何留在页脚部分?#php

问题描述

我需要一些关于 PHP 会话的帮助,或者来自精通 PHP 会话的人的类似帮助,并且对不熟悉 PHP 会话的人有所了解。有人告诉我,它可以通过 PHP 会话完成,还是不可能?有一些答案可以用 Ajax 完成,但我的问题是 - 它可以用 PHP 会话完成吗?如何?好吧,一切都对我有用 - 它将数据插入数据库并抛出验证错误,但这是我的问题:我正在做 MVC,我不想在提交后刷新我的页面,以便用户必须滚动向下查看验证(因为我在页脚中有 $msg 和 $errors),所以我希望视口在提交后写入消息的同一位置 - 在页脚中。如果有人能看到并给出我需要在哪里放置或从哪里删除什么的具体答案,我将不胜感激。我相信小东西在控制器中。

PS 这里是 1. index.php (pijaca.php) 由包裹组成的页面, 2. 表单所在的 pijaca-footer.php, 3. 从表单去的 routes.php 和 4. Controller.php .

我尝试了一切:将“id”放入表单中,然后从 Controller 调用它 - 不起作用,在网上寻找建议和答案,我可能用谷歌搜索了一些不好的东西(它会随着时间和经验而来),但是我没办法。提前致谢!

<?php

$ime = isset($ime)?$ime:"";
$prezime = isset($prezime)?$prezime:"";
$telefon = isset($telefon)?$telefon:"";
$errors = isset($errors)?$errors:[];
session_start();

?>

<?php include'pijaca-nav.php'; ?>
<?php include'pijaca-header.php'; ?>
<?php include'pijaca-about.php'; ?>
<?php include'pijaca-photo-1.php'; ?>
<?php include'pijaca-story.php'; ?>
<?php include'pijaca-photo-2.php'; ?>
<?php include'pijaca-features.php'; ?>
<?php include'pijaca-footer.php'; ?>

<footer id="contact" class="footer"> 
  
  <div class="footer__box">

    <form action="routes.php" id="form" class="form" method="post">

      <input type="text" class="form__input" name="firstname" placeholder="First Name" value="<?php echo $ime ?>"><span>*<?php if(array_key_exists('firstname', $errors)) echo $errors['firstname'] ?></span>

      <input type="text" class="form__input" name="lastname" placeholder="Last Name" value="<?php echo $prezime ?>"><span>*<?php if(array_key_exists('lastname', $errors)) echo $errors['lastname'] ?></span>

      <input type="text" class="form__input" name="telephone" placeholder="Telephone No." value="<?php echo $telefon ?>"><span>*<?php if(array_key_exists('telephone', $errors)) echo $errors['telephone'] ?></span>

      <button class="btn btn--green btn--form" type="submit" name="page" value="contactus">Contact us</button>
    </form>

    <h5 class="heading-5 heading-5--footer-box-1">
      <?php if(isset($msg)) echo $msg ?>
    </h5>
    
  </div>

</footer>

<?php

require_once'../controller/Controller.php';

$controller = new Controller();

$pageGet = isset($_GET['page'])?$_GET['page']:"index";
$pagePost = isset($_POST['page'])?$_POST['page']:"index";
$page = ($pageGet != "index")?$pageGet:$pagePost;

switch ($page) {
  case 'contactus':
    $controller->contactus();
  break;
}

<?php

require_once'../model/DAO.php';

class Controller{

    public function contactus() {

        $ime = isset($_POST['firstname'])?$_POST['firstname']:"";
        $prezime = isset($_POST['lastname'])?$_POST['lastname']:"";
        $telefon = isset($_POST['telephone'])?$_POST['telephone']:"";

        $errors = [];

        if (empty($ime)) {
            $errors['firstname'] = "Please enter your name";
        }

        if (empty($prezime)) {
            $errors['lastname'] = "Please enter your lastname";
        }

        if (empty($telefon)) {
            $errors['telephone'] = "Please enter your telephone";
        } else {
            if (preg_match('/^[0-9 +_-]*$/', $telefon)) {
                
            } else {
                $errors['telephone'] = "Please enter a number";
            }
            
        }

        if (count($errors) == 0) {

            $dao = new DAO();

            $podacikorisnika = $dao->korisnik($ime, $prezime, $telefon);

            $msg = "Sucsses!";
            include 'pijaca.php';
            
     } else {
      $msg = "Please enter all fileds";
      include 'pijaca.php';
     }

   }
}

标签: phpsessionmodel-view-controllercontroller

解决方案


推荐阅读