PHP echo按钮onclick功能

时间:2013-04-01 20:52:40

标签: php button onclick html-table echo

对于一个小小的“网上商店项目”,我创建了一个包含PHP和echo“...”函数的表。该表显示了一些值,在最后一个单元格中,应该有一个按钮,用户可以删除相应的行(或更好的说,购买)。数据保存在数据库中,并在页面加载时读出,而不是在表格中显示。

我使用“购买ID”来找出哪些行必须删除,如果我只是实现函数本身就可以正常工作。问题是我无法将该功能作为按钮的“onclick”事件。

所以,有些代码:

function delete_purchase($purchase_id){
mysql_query("DELETE FROM purchase WHERE purch_id = '$purchase_id'");};

这是删除行的PHP函数,很容易。

$result = mysql_query("SELECT purchase.purch_id, item.name, purchase.amount, purchase.purch_date, delivery.meaning, item.weight FROM purchase, item, delivery WHERE purchase.cust_id='$cust_id' AND delivery.del_id = purchase.delivered AND purchase.item_id = item.item_id");

while($row = mysql_fetch_array($result))
    {
    echo "<tr>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['amount'] . "</td>";
    echo "<td>" . $row['weight'] * $row['amount'] . "</td>";
    echo "<td>" . $row['purch_date'] . "</td>";
    echo "<td>" . $row['meaning'] . "</td>";
    echo "<td><button onclick=\"delete_purchase('" . $row['purch_id'] . "')\">Kill</button></td>";
    echo "</tr>";
    }

这是似乎不起作用的部分。我从数据库中获取变量和其他一些值,只要有值,就将它们插入到我的表中。一切都显示出来,甚至是按钮;但点击它们不会做任何事情。

该网站的源代码似乎很好:

<td><button onclick="delete_purchase('138')">Kill</button></td>

希望一切都清楚,你们有一些想法是错的。如果您需要了解其他内容,请询问,我会看到我能做些什么。

3 个答案:

答案 0 :(得分:4)

onclick="delete_purchase('138')"

调用一个名为delete_purchase的Javascript函数,它在您的代码中似乎不存在。您只有一个具有该名称的PHP函数。

由于所有PHP都在服务器端执行,因此HTML将在客户端看到代码之前很久就构建,因此您永远无法从客户端调用delete_purchase PHP函数。

解决这个问题的唯一两种方法是: - 创建一个delete_purchase JS函数,然后通过使用AJAX调用PHP文件。 - 根本不要调用onclick JS功能,并使按钮成为常规表单提交,然后在服务器端捕获以删除购买。然而,这将涉及完整的页面刷新。

答案 1 :(得分:0)

您的delete_purchase()功能在服务器端定义,在客户端不可用。您需要向服务器发送请求并发送ID,例如:

?action=delete&id=1

然后您可以在服务器端验证它并调用函数

<?php
if(isset($_GET['action']) && $_GET['action'] == 'delete'){
 //do some staff
}
?>

答案 2 :(得分:0)

您尝试直接从HTML(从浏览器)调用PHP函数

这是不可能的!

你可以用两种方式来称呼它:

1)AJAX调用php脚本将删除购买

2)将浏览器重定向到php脚本,这将删除购买,然后重定向回来