我这里有点问题。
数据插入到数据库中,但在打开页面时会插入。
我想在按下提交按钮时插入数据,而不是在页面加载/刷新时插入数据。希望有人可以帮助我!
以下是代码:
<html>
<head>
</head>
<body>
<h2>Arbeidsliste</h2>
<div id ="insert">
<form action="index.php" method="post">
<p>
<label for="dato">Dato: </label>
<input type="date" name="dato" class="field">
</p>
<p>
<label for="start">Start: </label>
<input type="time" name="start" class="field">
</p>
<p>
<label for="slutt">Slutt: </label>
<input type="time" name="slutt" class="field">
</p>
<p>
<label for="pause">Pause: </label>
<input type="number" name="pause" class="field">
</p>
<p>
<input type="submit">
</p>
</form>
</div>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "timer";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO meny (dato, start, slutt, pause)
VALUES ('2016-04-01', '12:00', '20:00', '30')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
</body>
</html>
答案 0 :(得分:3)
if(isset($_POST['submit'])){
// execute query
}
这基于输入相同名称属性和表单的POST方法。
<input type="submit" name="submit" value="Submit">
另外,如果您是通过用户输入获得的,则需要检查empty()
字段并使用预准备语句。
编辑:根据你的编辑。
将<input type="submit">
更改为我上面列出的内容。
空字段的基本检查是:
if(!empty($_POST['dato']) && !empty($_POST['start'])){
$dato = $_POST['dato'];
$start = $_POST['start'];
// execute the query
}
并对其他字段应用相同的逻辑。
哦,只是为了确定......我会在这里添加一些额外的条件:
if(isset($_POST['submit'])){
if(!empty($_POST['dato']) && !empty($_POST['start'])){
$dato = $_POST['dato'];
$start = $_POST['start'];
// execute the query
}
}
您可以添加标题以重定向。
阅读该功能:
并确保您没有在标头之前输出。如果您收到有关它的警告,请参阅Stack上的以下内容:
或者,如何在PHP中重定向:
您还有另一种选择,即使用两个单独的文件。
一个用于HTML表单,一个用于PHP / MySQL,但在成功查询后仍应使用标题重定向。
答案 1 :(得分:0)
if (isset($_POST['submit'])) { your php code }
将会完成这项工作。
<html>
<head>
</head>
<body>
<h2>Arbeidsliste</h2>
<div id ="insert">
<form action="index.php" method="post">
<p>
<label for="dato">Dato: </label>
<input type="date" name="dato" class="field">
</p>
<p>
<label for="start">Start: </label>
<input type="time" name="start" class="field">
</p>
<p>
<label for="slutt">Slutt: </label>
<input type="time" name="slutt" class="field">
</p>
<p>
<label for="pause">Pause: </label>
<input type="number" name="pause" class="field">
</p>
<p>
<input type="submit">
</p>
</form>
</div>
<?php
if (isset($_POST['submit'])) {
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "timer";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO meny (dato, start, slutt, pause)
VALUES ('2016-04-01', '12:00', '20:00', '30')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>
</body>
</html>