1

小さな「webshop プロジェクト」では、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')"

delete_purchaseコードに存在しないと思われる という Javascript 関数を呼び出します。その名前の PHP 関数しかありません。

すべての PHP はサーバー側で実行されるため、クライアントがコードを確認するずっと前に HTML が構築されるためdelete_purchase、クライアント側から PHP 関数を呼び出すことはできません。

これを回避するには、次の 2 つの方法しかありません。 - delete_purchaseAJAX を使用して PHP ファイルを呼び出す JS 関数を作成します。- JS 関数をまったく呼び出さずonclick、ボタンを通常のフォーム送信にして、サーバー側でキャッチして購入を削除します。ただし、これには完全なページの更新が必要です。

于 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スクリプトのAJAX呼び出し

2) ブラウザを php-script にリダイレクトします。これにより、購入が削除され、リダイレクトされます。

于 2013-04-01T20:56:36.407 に答える