2015-06-03 39 views
0

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

所以essentialy我要求的是我如何给一个按钮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"; 
} 
?> 
+0

可能的重复[获取表单数据与JavaScript,然后提交给一个PHP文件使用Ajax](http://stackoverflow.com/questions/6613089/get-form-data-with-javascript-and-then-提交它的一个php文件使用ajax) – Machavity

回答

0

好的有很多的方法可以做到这一点,但这里是我应该怎样做:

<?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()一样。根据您需要的安全级别,您可能希望再保护一下这段代码。

+0

非常感谢,非常感谢:) –

+0

非常欢迎;) – Gunthari

1

这AQUIRE 2项任务:

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

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

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

  1. 您需要创建另一个PHP脚本,它将由tje AJAX脚本调用。
    在该PHP脚本中,您将执行所需的数据库更新。
+0

非常感谢您的答复,但是我真的没有一般的AJAX的任何经验,介意给我一些样品? –

+0

我可以给你这个链接,这是ajax的基本介绍(在这种情况下,你不需要更多的基础知识)。具体参见后文章部分(尽管它可以与GET一起使用):http://www.phphulp。nl/php/tutorial/overig/ajax-xml-json/666/eerste-voorbeelden/1746 /是的,我说你的语言。 :-) – Blaatpraat