超过 2 页的 PHP 提交表单到 MySQL 表

标签 php jquery html mysql

我在使用以下代码时遇到问题。我需要我的表单跨 2 页将信息插入到我的 MySQL 表中。我做了一些研究,并在帮助下得出了以下结论。

第一页 PHP

<?php
 ob_start();
 session_start();
 require_once 'dbconnect.php';

 if( !isset($_SESSION['client']) ) {
  header("Location: homepage_login.php");
  exit;
 }
 // select loggedin users detail
 $res=mysql_query("SELECT * FROM clients WHERE client_id=".$_SESSION['client']);
 $userRow=mysql_fetch_array($res);


 if( isset($_POST['btn-nxt-page']) ) { 

  $client_student_id = trim($_POST['client_student_id']);
  $ss_name = trim($_POST['ss_name']);

  $client_student_id = strip_tags($client_student_id);
  $ss_name = strip_tags($ss_name);


 if ($_SELF) {
  $query = "";
  $res = mysql_query($query);

  if ($res) {
   $errTyp = "success";
  } else {
   $errTyp = "danger";
  } 
 }

     function redirect($where){      
       header("Location: $where");
    }
    if ($_REQUEST['ss_name'] == 'John') {
    header("Location: http://localhost/homepage_loggedin_book_john.php");
} else if ($_REQUEST['ss_name'] == 'Smith') {
    header("Location: http://localhost/homepage_loggedin_book_smith.php");
} else if ($_REQUEST['ss_name'] == 'Greg') {
    header("Location: http://localhost/homepage_loggedin_book_greg.php");
 } else if ($_REQUEST['ss_name'] == 'Jess') {
    header("Location: http://localhost/homepage_loggedin_book_jess.php");
 }}
?>

首页 HTML

<form action"" method="post">

      <div class="form-group">
             <div class="input-group">
             <input type="text" name="client_student_id" class="form-control" placeholder="Enter your Student ID" required />
                </div>
            </div>
            <br>
            <br>

       <label for="ss_name" id="menu">Select a teacher</label>
            <select name="ss_name" id="#menu">
               <option value="John">John</option>
               <option value="Smith">Smith</option>
               <option value="Greg">Greg</option>
               <option value="Jess">Jess</option>
            </select>
            <br>
            <br>

        <div class="form-group">
             <button type="submit" class="btn btn-block btn-primary" name="btn-nxt-page">Next Page</button>
            </div>

         </form>

一切正常,但用户输入的信息(学号和教师)没有进入我的数据库。

这是我的第二页 PHP:

<?php
 ob_start();
 session_start();
 require_once 'dbconnect.php';

 if( !isset($_SESSION['client']) ) {
  header("Location: homepage_login.php");
  exit;
 }
 // select loggedin users detail
 $res=mysql_query("SELECT * FROM clients WHERE client_id=".$_SESSION['client']);
 $userRow=mysql_fetch_array($res);

$_SESSION['client_student_id'] = $_POST['client_student_id'];
$_SESSION['ss_name'] = $_POST['ss_name'];

if( isset($_POST['btn-book']) ) { 

 if ($_SELF) {
  $query = "";
  $res = mysql_query($query);

  if ($res) {
   $errTyp = "success";
  } else {
   $errTyp = "danger";
  } 
 }
}

?>
<?php
$ss_name = $_SESSION['ss_name'];
$client_student_id  = $_SESSION['client_student_id'];
$reason      = $_SESSION['reason'];
$slot_date = $_SESSION['slot_date'] ;
$slot_line    =$_SESSION['slot_line'];
?>
<?php
    $query="INSERT INTO appointments (,
    ss_name,
    client_student_id,
    reason,
    slot_date,
    slot_line,
     )
    VALUES('NULL',
    '".mysql_real_escape_string($ss_name)."',
    '".mysql_real_escape_string($client_student_id)."',
    '".mysql_real_escape_string($reason)."',
    '".mysql_real_escape_string($slot_date)."',
    '".mysql_real_escape_string($slot_line)."','
    )";
    echo $query;
    mysql_query($query) or die ('Error updating database');
    ?>

还有我的第二页 HTML:

<form action"" method="post">
    <p>Date: <input type="text" id="datepicker" name="slot_date"></p>

       <br>
       <br>
       Select a line:
       <ol id="selectable" name="slot_line">
  <li class="ui-widget-content">Line 1</li>
  <li class="ui-widget-content">Line 2</li>
  <li class="ui-widget-content">Line 3</li>
  <li class="ui-widget-content">Line 4</li>
  <li class="ui-widget-content">Line 5</li>
  <li class="ui-widget-content">Line 6</li>
  <li class="ui-widget-content">Line 7</li>
</ol>
<br>
<br>

<p>Reason for appointment: <input type="text" name="reason"></p>

        <div class="form-group">
             <button type="submit" class="btn btn-block btn-primary" name="btn-book">Book</button>
                </div>
</form>

有人建议我将第二页的 PHP 代码放在一个单独的页面中,但我无法连接这些页面。

所以,我的问题是:

我如何获取信息以跨我的两个表单页面插入我的数据库表(称为约会)?

最佳答案

请按照以下步骤

  1. 当您提交的第一页没有触发插入查询时,在 session 中保存您所有的第一页值

  2. 填写所有第二页表单值,在第二页提交事件触发 sql 插入查询并在此查询中插入所有第一页( session 值)和第二页值

关于超过 2 页的 PHP 提交表单到 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734143/

相关文章:

php - JQGRID,如何在网格中多选行并在单击时将所选数据发布到数据库?

php - 傻瓜版 Mailchimp (php)

javascript - 在自动完成列表中选择时更改输入值

html - MVC Razor View Engine,在引号之间添加逻辑

javascript - Google AMP amp-sidebar 和固定定位的 z-index

jquery - 谷歌浏览器不显示箭头标志

php - 使用 jquery ajax 显示带有更新按钮的选定行表

javascript - 从 PHP 中返回多个值并在 Javascript 中解析的最佳方法

javascript - 仅从网页中提取文本内容

javascript - 使用 javascript 中的append() 到带有 PHP 代码的选择表单