对于一个小小的“网上商店项目”,我创建了一个包含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>
希望一切都清楚,你们有一些想法是错的。如果您需要了解其他内容,请询问,我会看到我能做些什么。
答案 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脚本,这将删除购买,然后重定向回来