在页面上,我试图在更新表单上使用其他编辑功能的删除按钮,并且在所有尝试中,似乎我的删除混乱了。
这是该网站的链接,因此您可以测试:http://exhibitjewellery.com/editstocktest.php (该按钮当前位于“所有系列中的部件”下,单击一个名称可将该表单打开为可折叠面板)
我已经使用了dreaweaver cs5向导,如果这有助于了解我的其余代码的外观。你能救我吗?
<?php
if (isset($_GET['delete'])) {
echo 'Do you really want to delete ' . $_GET['delete'] . '? <a href="editstock.php?yesdelete=' . $_GET['delete'] . '">Yes</a> | <a href="editstock.php">No</a>';
exit();
}
if (isset($_GET['yesdelete'])) {
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1",
GetSQLValueString($_POST['id'], "int"));
mysql_select_db($database_connectmysql, $connectmysql);
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error());
header("location: editstock.php");
exit();
}
?>
以上代码由此按钮激活:
<input name="delete" type="button" id="delete" value="delete" style="width:20%; float:right"/>
答案 0 :(得分:0)
如果您在http://exhibitjewellery.com/editstocktest.php中查看源代码,就会看到您的表单正在使用method="post"
<form action="/editstocktest.php?" method="post" name="form4" id="form4">
所以你不能我们$_GET
-
if (isset($_GET['delete'])) {}
另外,在您的删除链接中,您使用的是delete
的值,但我认为您需要id
- $_POST['id']
最后,当您点击该链接$_POST['id']
无法在if (isset($_GET['yesdelete']))
内使用时,您需要将id
添加到网址
编辑1
这里有一个建议的方法来改变它,虽然基于网址删除永远不是一个好主意。最好确保只有管理员才能以这种方式访问/删除。注意,GetSQLValueString()
是Dreamweaver创建的函数,因此您需要确保将文件包含在定义的位置。
<?php
if (isset($_POST['delete'])) {
echo 'Do you really want to delete ' . $_POST['piece'] . '? <a href="editstock.php?yesdelete=' . $_POST['id'] . '">Yes</a> | <a href="editstock.php">No</a>';
exit();
}
if (isset($_GET['yesdelete'])) {
include('file where GetSQLValueString() is defined'); // you have to change **file where GetSQLValueString() is defined** to the file path
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1",
GetSQLValueString($_GET['yesdelete'], "int"));
mysql_select_db($database_connectmysql, $connectmysql);
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error());
header("location: editstock.php");
exit();
}
?>
编辑#2
由于您要使用onclick
执行删除功能,因此您需要修改location.href
并使用$_GET
。
你的html按钮
<input name="delete" type="button" id="delete" value="delete" style="width:20%; float:right" onclick="window.location.href = '?delete=delete&id=<?php echo $row['id']; ?>&piece=<?php echo $row['piece']; ?>'"/>
我不知道您如何填充表单元素,因此请更改$row['id']
&amp; $row['piece']
您的方法。
然后你的删除功能 -
<?php
if (isset($_GET['delete'])) {
echo 'Do you really want to delete ' . $_GET['piece'] . '? <a href="editstock.php?yesdelete=' . $_GET['id'] . '">Yes</a> | <a href="editstock.php">No</a>';
exit();
}
if (isset($_GET['yesdelete'])) {
include('file where GetSQLValueString() is defined'); // you have to change **file where GetSQLValueString() is defined** to the file path
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1",
GetSQLValueString($_GET['yesdelete'], "int"));
mysql_select_db($database_connectmysql, $connectmysql);
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error());
header("location: editstock.php");
exit();
}
?>
编辑3
如果你找不到Dreamweaver定义函数的位置,你可以重新声明它 -
<?php
if (isset($_GET['delete'])) {
echo 'Do you really want to delete ' . $_GET['piece'] . '? <a href="editstock.php?yesdelete=' . $_GET['id'] . '">Yes</a> | <a href="editstock.php">No</a>';
exit();
}
if (isset($_GET['yesdelete'])) {
// redefine if does not exist
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType,
$theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ?
mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$deleteSQL = sprintf("DELETE FROM pieces WHERE id='%s' LIMIT 1",
GetSQLValueString($_GET['yesdelete'], "int"));
mysql_select_db($database_connectmysql, $connectmysql);
$Result1 = mysql_query($deleteSQL, $connectmysql) or die(mysql_error());
header("location: editstock.php");
exit();
}
?>
答案 1 :(得分:-1)
试试这个
<form action="" method="get">
<input name="delete" type="submit" id="delete" value="delete" style="width:20%; float:right"/>
</form>
或
<input name="delete" type="button" id="delete" value="delete" style="width:20%; float:right" onclick="window.location.href = '?delete=delete'" />
答案 2 :(得分:-1)
我知道这听起来像个愚蠢的问题,但您使用的是HTML表单吗?此外,您可能希望将输入类型设置为“提交”而不是“按钮”
又名
<form action="" method="GET">
<input type="submit" name="delete" id="delete" value="delete" style="width:20%; float:right"/>
</form>