按下按钮

时间:2015-06-03 12:27:01

标签: php database button

所以我很久以前遇到了一些麻烦。作为一名学生,我相对较新的编程,因此我经常访问这些网站寻求帮助。我的问题是如何通过按下按钮为数据库增加价值。对我来说,这里的问题是该按钮具有要打印的javavscript功能。所以换句话说,我希望按钮有2个功能,一个打印页面(我已经拥有)和一个为数据库增加价值的功能。将值添加到数据库的目的是让人们可以看到它之前已经打印过。

所以我要求的是如何提供按钮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 个答案:

答案 0 :(得分:1)

这将获得2个任务:

  1. 是否将函数绑定到按钮的单击处理程序。 虽然直接使用函数调用是不好的做法,但在您的情况下,您可以通过自定义javascript函数替换window.print()
  2. 在该javascript函数中,您再次执行window.print(),然后在逻辑中执行下一步:将数据发送到PHP。 使用ajax,你可以实现这个目标。

    使用函数中的参数,您可以传递当前行的ID,这需要传递给PHP。

    1. 您需要创建另一个PHP脚本,该脚本将由tje AJAX脚本调用 在该PHP脚本中,您将对数据库进行必要的更新。

答案 1 :(得分:0)

Ok你可以通过很多方法来实现它,但这就是我将如何做到这一点:

<?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>

然后您将文件print_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()。根据您需要的安全级别,您可能希望更多地保护此代码。