Wenn Sie Angst vor AJAX haben, können Sie Ihr Linkziel auf einen versteckten Iframe setzen. Es wird manchmal als ein schmutziger Trick angesehen, aber es ist durchaus in Ordnung, wenn man nur seine Funktion schreiben und mit seinem Leben weitermachen möchte.
Die PHP-Seite ist ziemlich einfach. Erstellen Sie einfach eine nullify.php
oder ähnliche Datei:
<?php
// mysql connection code goes here
mysql_query(sprintf(
"UPDATE `yourTable` SET `yourField` = NULL WHERE `key` = '%s' LIMIT 1",
mysql_real_escape_string($_GET['id'])
));
?>
In Ihrem Frontend, machen einen versteckten iframe:
<iframe name="hidden1" id="hidden1" style="display:none" src="javascript:"></iframe>
dann schließlich Ihre nullify Taste:
<a href="nullify.php?id=12345" target="hidden1">Nullify</a>
Glückliche nulling.
PS Null in einer Datenbank bedeutet traditionell einen nicht initialisierten Wert. Vielleicht würde eine Flagge besser funktionieren?
-n.
bearbeiten Notiere die mysql_real_escape_string
Funktion, die Sie von SQL-Injection schützt. Spinnen WÜRDEN ein Problem mit der Methode, die ich vorgeschlagen habe, so etwas Javascript würde sich als nützlich erweisen:
<a href="javascript:document.getElementById('hidden1').location='nullify.php?id=12345';return false">Nullify</a>
Eugh. "Ich verwende das falsche Tool für den Job, daher müssen Sie JavaScript aktivieren, um diese Website zu verwenden". Böse. – Quentin
Vorbereitete Anweisungen (z. B. mit PDO) werden gegenüber "mysql_real_escape_string" bevorzugt. – Quentin
Dank David. Natürlich ist es nicht die perfekte Lösung, aber wer möchte mit einem Vorschlaghammer einen Nagel einschlagen? –