通过按下按钮为数据库赋值

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 个任务:

  1. 是不是你绑定了一个函数到按钮的点击处理器。 尽管直接使用函数调用是一种不好的做法,但在您的情况下,这将是您将 window.print() 替换为自定义 javascript 函数。

在那个 javascript 函数中,您再次执行 window.print(),然后执行逻辑中的下一步:将数据发送到 PHP。 使用 ajax 你可以实现这个。

通过函数中的参数可以传递当前行的ID,需要传递给PHP。

  1. 您需要创建另一个 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()。根据您需要的安全级别,您可能希望进一步保护此代码。