我在使用以下代码时遇到问题。我需要我的表单跨 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 代码放在一个单独的页面中,但我无法连接这些页面。
所以,我的问题是:
我如何获取信息以跨我的两个表单页面插入我的数据库表(称为约会)?
最佳答案
请按照以下步骤
当您提交的第一页没有触发插入查询时,在 session 中保存您所有的第一页值
填写所有第二页表单值,在第二页提交事件触发 sql 插入查询并在此查询中插入所有第一页( session 值)和第二页值
关于超过 2 页的 PHP 提交表单到 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734143/