通过按下按钮为数据库赋值
Give value to Database by Pressing button
所以我 运行 不久前遇到了一些麻烦。作为一名学生,我对编程还比较陌生,因此我经常访问这些网站寻求帮助。我的问题是如何通过按下按钮为数据库增加价值。对我来说,这里的问题是该按钮具有要打印的 javavscript 函数。所以换句话说,我希望按钮有两个功能,一个打印页面(我已经有),另一个为数据库增加价值。将值添加到数据库的目的是让人们可以看到它之前已经打印过。
所以本质上我要问的是如何为按钮提供 2 个功能(一个是 Javascript)并向人们展示该按钮已被使用(在本例中,它已被打印) .非常感谢所有帮助。
我的代码如下:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$resultSet = $conn->query("SELECT * FROM orders");
// Count the returned rows
if($resultSet->num_rows != 0){
// Turn the results into an Array
while($rows = $resultSet->fetch_assoc())
{
$id = $rows['id'];
$naam = $rows['naam'];
$achternaam = $rows['achternaam'];
$email = $rows['email'];
$telefoon = $rows['telefoon'];
$bestelling = $rows['bestelling'];
echo "<p>Name: $naam $achternaam<br />Email: $email<br />Telefoon: $telefoon<br /> Bestelling: $bestelling<br /> <a href='delete.php?del=$id'>Delete</a> <input type='button' onclick='window.print()' value='Print Table' /> </p>";
}
// Display the results
}else{
echo "Geen bestellingen";
}
?>
这将需要 2 个任务:
- 是不是你绑定了一个函数到按钮的点击处理器。
尽管直接使用函数调用是一种不好的做法,但在您的情况下,这将是您将
window.print()
替换为自定义 javascript 函数。
在那个 javascript 函数中,您再次执行 window.print()
,然后执行逻辑中的下一步:将数据发送到 PHP。
使用 ajax 你可以实现这个。
通过函数中的参数可以传递当前行的ID,需要传递给PHP。
- 您需要创建另一个 PHP 脚本,它将被 AJAX 脚本调用。
在该 PHP 脚本中,您将对数据库进行必要的更新。
好的,有很多方法可以做到,但我会这样做:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$resultSet = $conn->query("SELECT * FROM orders");
// Count the returned rows
if($resultSet->num_rows != 0){
// Turn the results into an Array
while($rows = $resultSet->fetch_assoc())
{
$id = $rows['id'];
$naam = $rows['naam'];
$achternaam = $rows['achternaam'];
$email = $rows['email'];
$telefoon = $rows['telefoon'];
$bestelling = $rows['bestelling'];
//first you call a custom javascript function after the 'onclick'. I believe you'll have to pass a variable as an argument (like $id).
echo "<p>Name: $naam $achternaam<br />Email: $email<br />Telefoon: $telefoon<br /> Bestelling: $bestelling<br /> <a href='delete.php?del=$id'>Delete</a> <input type='button' onclick='print_table($id)' value='Print Table' /> </p>";
}
// Display the results
}else{
echo "Geen bestellingen";
}
?>
然后你把这个函数写在你页面的头部
<script>
function print_table(id)
{
//print your document
window.print();
//send your data
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://www.domaine.com/directories/printed_table.php?id=" + id;
xmlhttp.send();
}
</script>
然后你写你的文件 printed_table.php 如果打印则存储 1
或如果不打印则存储 0
。我不懂德语,所以我不知道您将打印的变量存储在哪里,但它是这样的:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$id = $_GET['id'];
$resultSet = $conn->query("UPDATE `orders` SET `printed` = 1 WHERE `id` = `$id`");
?>
这应该有效。出于安全目的,在使用它之前要小心并检查 $_GET['id'] 。比如你可以使用 php 函数 is_int()。根据您需要的安全级别,您可能希望进一步保护此代码。
所以我 运行 不久前遇到了一些麻烦。作为一名学生,我对编程还比较陌生,因此我经常访问这些网站寻求帮助。我的问题是如何通过按下按钮为数据库增加价值。对我来说,这里的问题是该按钮具有要打印的 javavscript 函数。所以换句话说,我希望按钮有两个功能,一个打印页面(我已经有),另一个为数据库增加价值。将值添加到数据库的目的是让人们可以看到它之前已经打印过。
所以本质上我要问的是如何为按钮提供 2 个功能(一个是 Javascript)并向人们展示该按钮已被使用(在本例中,它已被打印) .非常感谢所有帮助。
我的代码如下:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$resultSet = $conn->query("SELECT * FROM orders");
// Count the returned rows
if($resultSet->num_rows != 0){
// Turn the results into an Array
while($rows = $resultSet->fetch_assoc())
{
$id = $rows['id'];
$naam = $rows['naam'];
$achternaam = $rows['achternaam'];
$email = $rows['email'];
$telefoon = $rows['telefoon'];
$bestelling = $rows['bestelling'];
echo "<p>Name: $naam $achternaam<br />Email: $email<br />Telefoon: $telefoon<br /> Bestelling: $bestelling<br /> <a href='delete.php?del=$id'>Delete</a> <input type='button' onclick='window.print()' value='Print Table' /> </p>";
}
// Display the results
}else{
echo "Geen bestellingen";
}
?>
这将需要 2 个任务:
- 是不是你绑定了一个函数到按钮的点击处理器。
尽管直接使用函数调用是一种不好的做法,但在您的情况下,这将是您将
window.print()
替换为自定义 javascript 函数。
在那个 javascript 函数中,您再次执行 window.print()
,然后执行逻辑中的下一步:将数据发送到 PHP。
使用 ajax 你可以实现这个。
通过函数中的参数可以传递当前行的ID,需要传递给PHP。
- 您需要创建另一个 PHP 脚本,它将被 AJAX 脚本调用。
在该 PHP 脚本中,您将对数据库进行必要的更新。
好的,有很多方法可以做到,但我会这样做:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$resultSet = $conn->query("SELECT * FROM orders");
// Count the returned rows
if($resultSet->num_rows != 0){
// Turn the results into an Array
while($rows = $resultSet->fetch_assoc())
{
$id = $rows['id'];
$naam = $rows['naam'];
$achternaam = $rows['achternaam'];
$email = $rows['email'];
$telefoon = $rows['telefoon'];
$bestelling = $rows['bestelling'];
//first you call a custom javascript function after the 'onclick'. I believe you'll have to pass a variable as an argument (like $id).
echo "<p>Name: $naam $achternaam<br />Email: $email<br />Telefoon: $telefoon<br /> Bestelling: $bestelling<br /> <a href='delete.php?del=$id'>Delete</a> <input type='button' onclick='print_table($id)' value='Print Table' /> </p>";
}
// Display the results
}else{
echo "Geen bestellingen";
}
?>
然后你把这个函数写在你页面的头部
<script>
function print_table(id)
{
//print your document
window.print();
//send your data
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://www.domaine.com/directories/printed_table.php?id=" + id;
xmlhttp.send();
}
</script>
然后你写你的文件 printed_table.php 如果打印则存储 1
或如果不打印则存储 0
。我不懂德语,所以我不知道您将打印的变量存储在哪里,但它是这样的:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$id = $_GET['id'];
$resultSet = $conn->query("UPDATE `orders` SET `printed` = 1 WHERE `id` = `$id`");
?>
这应该有效。出于安全目的,在使用它之前要小心并检查 $_GET['id'] 。比如你可以使用 php 函数 is_int()。根据您需要的安全级别,您可能希望进一步保护此代码。