- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我可以知道是否可以保存用户先前输入的表单中的数据?
这是表单文件:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<title>Data</title>
<style type="text/css">
input {
background-color: #999;
border-style: solid;
border-color: #999;
border: 0px 4px 0px 4px;
padding: 3px 6px 3px 6px;
margin: 10px 0;
}
input:focus {
border-style: solid;
border-color: black;
}
</style>
</head>
<body>
<form action="count.php" method="post" action="post">
Name: <input type="text" name="customername" /><br />
DOB: <input type="text" name="date" /> <input type="text" name="month" /> <input type="text" name="year" /><br />
First Row: <input type="text" name="rowone" /><br />
Second Row: <input type="text" name="rowtwo" /><br />
Third Row: <input type="text" name="rowthree" /><br />
<input type="submit" value="Go" />
</form>
</body>
</html>
这里是执行用户输入的表单数据的 php。
<?php
$cname = $_POST['customername'];
$dob_date = $_POST['date'];
$dob_month = $_POST['month'];
$dob_year = $_POST['year'];
$year = gmdate("Y");
$month = gmdate("m");
$day = gmdate("d");
$age = $year - $dob_year; // $age calculates the user's age determined by only the year
if ($month < $dob_month) { // this checks if the current month is before the user's month of birth
$age = $age - 1;
} else if (
$month == $dob_month && $day >= $dob_date) { // this checks if the current month is the same as the user's month of birth and then checks if it is the user's birthday or if it is after it
$age = $age;
} else if ($month == $dob_month && $day < $dob_date) { //this checks if the current month is the user's month of birth and checks if it before the user's birthday
$age = $age - 1;
}
//add all initial data into an matrix variable for easier access to them later
//To access rowone use $rows[0][0], rowtwo $rows[1][0] ect.
//The matrix is an array which contains multiple array. eg. 2-dimensional arrays
//To get all the variables with $r1X simply retrieve the first array of the matrix eg $rows[0]
$rows = array(array($_POST['rowone']), array($_POST['rowtwo']), array($_POST['rowthree']), array());
//Similarities between row1 and row2 made me incoporate modulo value as an argument.
function incmod($a, $m) {
return ($a % $m) + 1;
}
//Population each row, with $populationCount number of elements, where each element is added with incmod(X, $mod)
function populateRow($rowId, $populationCount, $mod) {
//The global keyword is needed in order for the function to access the global variable.
global $rows;
$row = $rows[$rowId];
while (sizeof($row) < $populationCount) {
$rowInd = sizeof($row) - 1;
$m = incmod($row[$rowInd], $mod);
array_push($row, $m);
}
//Due to how php works with variables and references we need to set the row back into the global variable.
$rows[$rowId] = $row;
}
//This function makes sure that the values allways are between 1 and 12.
function bindToRange($v) {
if ($v == 0)
return 1;
return ($v - 1) % 12 + 1;
}
//Population the first three rows
populateRow(0, 7, 7);
populateRow(1, 12, 12);
populateRow(2, 12, 12);
//Creating the forth row by nested forloops.
//The first loop iterates over the entries in a row (in your example this would be the letters e.g r1a r1b ect)
//The second (inner) loop iterates of the rows (in you example this would be the number you had in your variables.)
//The sum over each of the three rows are added, then bound to 1-12 range, before being added to the forth row.
for ($cId = 0; $cId < 7; $cId++) {
$sum = 0;
for ($rId = 0; $rId < 3; $rId++) {
$sum += $rows[$rId][$cId];
}
array_push($rows[3], bindToRange($sum));
}
//Same as above, but for the last two remaining values. Should give a total of nine entries in the forth row.
for ($cId = 7; $cId < 12; $cId++) {
$sum = 0;
for ($rId = 1; $rId < 3; $rId++) {
$sum += $rows[$rId][$cId];
}
array_push($rows[3], bindToRange($sum));
}
function lower_than_2($var){
return ($var > 1);
}
$cssClassName = "match";
// array_count_values will count how many times each value is in the array
$cssBase = array_count_values($rows[3]);
// remove from array values that are lower than 2
$cssBase = array_filter($cssBase, "lower_than_2");
$cssNumber = array();
$cssCounter = 1;
// make $cssNumber be a mirror of $cssBase (same keys), but with serial values
foreach ($cssBase as $key => $value) {
$cssNumber[$key] = $cssCounter;
$cssCounter++;
}
unset($cssCounter);
// ------------------------------------------------
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html" />
<title>Result</title>
<link rel="stylesheet" type="text/css" href="./css/style.css" />
</head>
<body>
Customer Name: <?php echo $cname; ?><br />
DOB: <?php echo $dob_date; ?> / <?php echo $dob_month; ?> / <?php echo $dob_year; ?><br />
<b><?php echo $age; ?></b> Years Old
<table>
<?php
//Instead of listing up (hard-coded) I've used nested forloops to generate the html.
//The loops are similar to the ones above, but use sizeof keyword to figure out how many iterations it needs.
$lines = sizeof($rows)+1; // $rows have 4 rows, we will need 1 more
for ($rId = 0; $rId < $lines; $rId++) {
echo "<tr>\n";
if($rId < 3){
$row = $rows[$rId];
$rowSize = sizeof($row);
for ($cId = 0; $cId < $rowSize; $cId++) {
echo "<td>" . $row[$cId] . "</td>\n";
}
} else if($rId == 3){
$row = $rows[$rId];
$rowSize = sizeof($row);
for ($cId = 0; $cId < $rowSize; $cId++) {
echo "<td"; // open td
// if the value is in cssBase array, we will apply a css class
if(array_key_exists($row[$cId], $cssBase))
echo ' class="'. $cssClassName . $cssNumber[$row[$cId]] .'"';
echo ">"; // close td
echo $row[$cId];
echo "</td>\n";
}
} else if($rId == 4){
for ($cId = 0; $cId < 12; $cId++) {
if($cId == (($age-1)%12)){
echo '<td>'. "$age Years Old" .'</td>'."\n";
} else {
echo "<td></td>\n";
}
}
}
echo "</tr>\n";
}
// ------------------------------------------------
?>
</table><br /><br />
<a href="./" target="_blank" title="Calculate Again">Calculate Again</a>
</body>
</html>
是否可以在 count.php 页面上添加一个保存按钮,该值将是用户之前在表单页面中键入的值。保存按钮将回显“数据已保存”,或者如果存在,它将在同一页面中回显“数据已存在”。如果是,我需要使用什么方法?当我搜索谷歌时,我是全新的,我找不到我需要的确切答案。我已经在 mysql 中创建表来存储数据。
我要存储的数据是出生日期、第一行、第二行和第三行。在mysql中建表,dob为date,rowone、rowtwo和rowthree为varchar(255),id为int(11)。
这是我的 insertdata.php
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "mama";
class dob {
public function set_dob($dob_date, $dob_month, $dob_year) {
$this->dob = $dob_date.'/'.$dob_month.'/'.$dob_year;
}
}
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
$sql="INSERT INTO profile (dob,rowone,rowtwo,rowthree) VALUES ('$_POST[dob]','$_POST[rowone]','$_POST[rowtwo]','$_POST[rowthree]')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
/* close connection */
$mysqli->close();
?>
它显示错误如下:注意:第18行C:\xampp\htdocs\mama\inc\insertdata.php中未定义索引:dob
注意:C:\xampp\htdocs\mama\inc\insertdata.php 第18行未定义索引:rowone
注意:C:\xampp\htdocs\mama\inc\insertdata.php 第18行未定义索引:rowtwo
注意:C:\xampp\htdocs\mama\inc\insertdata.php 第18行未定义索引:rowthree已添加 1 条记录注意: undefined variable :mysqli in C:\xampp\htdocs\mama\inc\insertdata.php on line 27
fatal error :在第 27 行调用 C:\xampp\htdocs\mama\inc\insertdata.php 中非对象的成员函数 close()
最佳答案
要存储从您的 View 页面发送的数据,我认为您需要先在您的 count.php 中建立您的应用程序和数据库 MySQL 之间的连接,然后创建一个方法来存储您的数据。
您可能想查看此链接:
http://www.w3schools.com/php/php_mysql_insert.asp
希望对你有帮助
关于php - 脚本执行后如何保存用户在表单页面输入的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471448/
我有一个测试即将进行,我想澄清两个有关参数的问题。 在我的笔记中指出,将参数传递给函数的推荐方法是使用“按引用传递” const type& x; // for "in" parameters
当我通过 OMG 2.5(Beta)推广的 UML 规范阅读以下概念时: in: Indicates that Parameter values are passed in by the caller
我试图在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是限制用户在填充值后修改输入中的值。 该值来自将在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入。 代
我在jQuery中使用模式弹出窗口控件,该弹出窗口具有由jQuery Tokenize输入插件提供动力的输入文本。问题是,当我在模式弹出文本框中键入内容时, token 化插件的搜索结果显示为隐藏在弹
我有一个问题。当我选中复选框时,系统工作正常,总值发生变化,但一旦我修改文本输入,它就会变为 0。我需要将此文本框输入排除在更改值之外。 这是 html: $15000 $
我正在努力让它发挥作用,但还是有些不对劲。 我想用 CSS 设置提交按钮的样式以匹配我已有的按钮。 风格: input[type="button"], input[type="submit"], b
import java.util.*;; public class selection { Scanner in=new Scanner(System.in); private
这可能是一个非常菜鸟的问题。假设我有一个带宽限制为 100MB/s 的网卡,那么输入/输出带宽是否有可能达到该限制 同时 ?或者我会在任何时候遇到这个不等式:in bandwidth + out ba
看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) . scala> Map(1
我有这样的东西 一个 乙 问? 是或否 数字 数字或零 我想做的是: 如果 B1 = “Y”,则让用户在 B2 中输入一个数字。 如果 B1 = “N”,则将 B2 中的值更改为零,并且不允许用户在
我有一个包含许多列的表,我想添加 input标题单元格内的字段,但我希望输入适合根据正文内容的宽度。 这是没有 input 的样子领域: 这就是 input 的样子领域: 可以看出,像“index”和
关于为 FTP 客户端设置传出和传入文件夹,您遵循哪些最佳实践(如果有)?我们通常使用“outgoing”和“incoming”,但无论你如何表述方向,它都可以有两种解释方式,具体取决于名称相对于哪一
我正在尝试“求解”给定 d 的 Pell 方程:x^2 - d * y^2 = 1,或者至少我想得到最小的 x > 0 来求解方程。到目前为止,一切都很好。这是我的 Haskell 代码 minX :
我是VS Code的新手,可以使用Ctrl + Enter将代码运行到python交互式窗口中。我希望光标自动移动到下一行,因此我可以逐行浏览代码。 能做到吗? 最佳答案 如this blog pos
我正在创建一个 bool 值矩阵/二维数组,并且我想为 dategrid 推断一种不仅仅是“ANY”的类型。 let yearRange = [2000,2001,2002,2003,2004]; l
我有两个排序的列表,例如 a = [1, 4, 7, 8] b = [1, 2, 3, 4, 5, 6] 我想知道a中的每个项目是否在b中。对于上面的示例,我想找到 a_in_b = [True, T
菜鸟警报 这很奇怪 - 当我编写以下代码时,尝试在 AngularJS 中创建自定义指令: myModule.directive('myTab', function(){ console.lo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
假设我正在使用 gdscript 静态类型,并且对于一个函数参数,我事先不知道我会得到什么。这就是 python 中 typing.Any 的作用。如何使用 gdscript 做到这一点? 似乎 Va
我使用 dropzone 上传多个图像,并且工作正常,直到我想为每个图像插入品牌和网址。 我遇到的唯一问题是,当我要从输入字段获取值时,我会从服务器获取来自字段(品牌、网址)的未定义值,但如果我使用静
我是一名优秀的程序员,十分优秀!