JavaScript打印和AJAX从数据库保存/删除

时间:2015-06-08 09:46:09

标签: javascript php ajax

我创建了此页面以从数据库中获取数据,其中包含打印显示数据的链接,然后将其删除。

其中一个问题是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`");
?>

1 个答案:

答案 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