我创建了此页面以从数据库中获取数据,其中包含打印显示数据的链接,然后将其删除。
其中一个问题是JavaScript打印函数window.print();
无效。
另一个问题是,在打印页面后,我想更新数据库,以便人们可以看到它之前已经打印过。
或者,该功能还可以打印页面,然后立即删除数据,这样人们就不需要查看它是否已经打印过。
这是从数据库获取数据的代码:
<html>
<header>
<script>
function print_table(id)
{
//print your document
window.print();
//send your data
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://localhost/Stage/printed_table.php" + id;
xmlhttp.send();
}
</script>
</header>
<body>
<?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='print_table($id)' value='Print Table' /> </p>";
}
// Display the results
}else{
echo "Geen bestellingen";
}
?>
</body>
</html>
这些是两个服务器端功能的页面:
delete.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "depits";
// Get ID
$id = $_GET['del'];
$sql= "DELETE FROM orders WHERE id=" . $id . "";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Query the database
$resultSet = $conn->query($sql) or die("Failed".mysql_error());
echo "<meta http-equiv='refresh' content='0;url=http://localhost/Stage%201/bestellingen.php'>";
?>
print_table.php
<?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`");
?>
答案 0 :(得分:1)
您应该检查浏览器控制台(F12)以查看是否存在任何JavaScript错误。
我能发现的一个非常明显的错误就是这条线,括号没有关闭。只需首先检查控制台即可轻松修复这些类型的错误。
另一个错误是字符串中的变量,它应该作为?key=value
对发送。
xmlhttp.open("GET","http://localhost/Stage/printed_table.php" + id;
应该是:
xmlhttp.open("GET","http://localhost/Stage/printed_table.php?id=" + id, true);
另一个问题是上述行正在调用的URL。我注意到你提到你的PHP文件名叫 print_table.php 而不是 printed_table.php 。