1

对于一个小的“网上商店项目”,我使用 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>

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

4

3 回答 3

6
onclick="delete_purchase('138')"

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

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

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

于 2013-04-01T20:55:52.180 回答
0

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

?action=delete&id=1

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

<?php
if(isset($_GET['action']) && $_GET['action'] == 'delete'){
 //do some staff
}
?>
于 2013-04-01T20:56:22.560 回答
0

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

这是不可能的!

您可以使用 2 种方式调用它:

1) php-script 的 AJAX 调用将删除购买

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

于 2013-04-01T20:56:36.407 回答