PHP echo Schaltfläche onclick-Funktion
Für eine kleine "webshop-Projekt" habe ich eine Tabelle erstellen mit PHP und echo"..." - Funktion. Die Tabelle zeigt einige Werte und in den letzten Zellen, da gibt es eine Schaltfläche die es ermöglicht, Benutzer zu löschen die entsprechende Zeile (oder besser gesagt, Kauf). Die Daten werden in eine Datenbank und Lesen, während die Seite geladen und als in der Tabelle angezeigt.
Verwende ich ein "Kauf-id", um herauszufinden, welche Zeilen gelöscht werden müssen, und es funktioniert gut, wenn ich nur implementieren Sie die Funktion selbst. Das problem ist, dass ich kann nicht die Funktion arbeitet wie "onclick" - Ereignis für die Schaltfläche.
So, einige code:
function delete_purchase($purchase_id){
mysql_query("DELETE FROM purchase WHERE purch_id = '$purchase_id'");};
Dass die PHP-Funktion, die löscht die Zeilen, einfach genug.
$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>";
}
Und dieser Teil scheint nicht zu funktionieren. Ich bekomme die variable und einige andere Werte aus der Datenbank und legen Sie Sie in meine Tabelle, solange es Werte gibt. Alles wird angezeigt, sogar die Tasten; aber, indem Sie auf Sie nicht tun.
Source-code der website scheint in Ordnung zu sein:
<td><button onclick="delete_purchase('138')">Kill</button></td>
Hoffe, alles ist klar, und Sie Jungs haben einige Ideen, was falsch ist. Wenn Sie brauchen, um wissen weitere Sachen, einfach Fragen und ich werde sehen was ich tun kann.
InformationsquelleAutor Phil | 2013-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
ruft eine Javascript-Funktion aufgerufen
delete_purchase
, die scheint nicht zu existieren in Ihrem code. Sie haben nur eine PHP-Funktion mit diesem Namen.Da alle PHP ausgeführt wird, auf der server-Seite, der HTML-Code aufgebaut werden, lange bevor der Kunde überhaupt sieht der code und somit werden Sie nie in der Lage sein, rufen Sie die
delete_purchase
PHP-Funktion von der client-Seite.Nur zwei Möglichkeiten, dies zu umgehen, sind:
- Erstellen Sie eine
delete_purchase
JS-Funktion, die ruft dann eine PHP-Datei durch den Einsatz von AJAX.- Rufen Sie nicht die
onclick
JS-Funktion und die Taste eine regelmäßige form Einreichen, die Sie dann fangen, auf der server-Seite zu löschen Kauf. Dies jedoch würde eine vollständige Aktualisierung der Seite.InformationsquelleAutor Steve
Ihre
delete_purchase()
Funktion definiert ist server-Seite, die nicht verfügbar im client-Seite. Sie benötigen, senden Sie eine Anfrage an den server und senden Sie die id ein, zum Beispiel:Dann können Sie Sie überprüfen es auf der server-Seite, und rufen Sie die Funktion
ja, so etwas wie, dass
InformationsquelleAutor
versuchen Sie zum aufrufen einer PHP-Funktion, die direkt aus HTML - (browser)
das ist unmöglich!
können Sie es nennen, mit genau 2 Möglichkeiten:
1) AJAX-Aufruf von php-script, das löscht den Kauf
2) umleiten browser php-script, das löscht den Kauf und leitet Sie zurück
InformationsquelleAutor dimaninc