我想要做的是使用确认框,如果用户单击“确定”,则从我的SQL数据库中删除一行。我有一个js函数,我用来发送值"删除"到这个相同文件的php函数:
<script>
function myFunction() {
if (confirm("Are you sure you want to delete?") == true) {
document.getElementById("delete").name = "delete";
}else{
return false;
}
}
</script>
用户单击以删除图像的按钮是:
<button onclick="myFunction()">Delete Image</button>
我将值发送到PHP函数,如下所示:
<input type="hidden" name="" value="delete" id="delete">
这是我的PHP函数:
if(isset($_POST['delete'])){
$img_path=$_POST['ipath'];
$imgid=$_POST['imgid'];
$link = mysqli_connect($host, $username, $password, $db);
$delete = "DELETE FROM images_info
WHERE Image_Id = $imgid";
$result3 = mysqli_query($link, $delete);
echo "Image Deleted : $imgid";
mysqli_close($link);
}
我做错了什么?我相信它必须使用javascript
答案 0 :(得分:2)
在你的html中,输入名称属性为空,
<input type="hidden" name="" value="delete" id="delete">
它应该像
<input type="hidden" name="delete" value="delete" id="delete">
在使用值'delete'提供name属性之前,不会设置$ _ POST ['delete']
答案 1 :(得分:0)
像这样使用它。这是PhpFiddle
PHP代码
<?php
if(isset($_POST['delete']))
{
// PERFORM YOUR DELETE QUERY HERE
print_r($_POST);
}
?>
JAVA SCRIPT
<script>
function myFunction() {
if (confirm("Are you sure you want to delete?") == true) {
document.getElementById("delete").name = "delete";
}else{
return false;
}
}
</script>
<强> HTML 强>
<form method="post" action="">
<button onclick="myFunction()">Delete Image</button>
<input type="hidden" name="" value="delete" id="delete">
</form>
答案 2 :(得分:0)
请勿在{{1}}标记中使用onclick =“myFunction()”。相反,请确保:
<input>
答案 3 :(得分:0)
变量$_POST
是从表单的<input>
标记获取的关联数组。 $_POST
中的键由输入标记的name
属性定义,$_POST
中的相应值由同一标记中的value
属性定义。除非您使用像jQuery这样的AJAX库,否则$_POST
中的数据不会来自JavaScript。如果要使用纯JavaScript控制此数据,则必须直接设置输入标记的属性。
您可以保留您正在使用的相同JavaScript代码,只需设置输入标记的value
属性,而不是name
,delete
应始终为$_POST['delete']
。然后在PHP代码中,您可以测试hdfs-site.xml
的值,以确定用户是否真的想要删除。
答案 4 :(得分:0)
似乎没有人愿意回答你的问题。如果你想用纯粹的js做这件事,你可以去:
var url = 'YOUR URL POST DESTINATION HERE';
function myFunction(elem){
var id = elem.target.id;
var xmlHttp = new XMLHttpRequest();
var params = 'delete=true&imgid=' + id;
xmlHttp.open('POST', url, true);
xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlHttp.send(params);
}
您需要以编程方式在js中设置imgid
。从您的页面执行myFunction(),如
<button onclick="myFunction(this)">Delete Image</button>
作为旁注,让用户发布到表单并修改数据库是一个非常糟糕的主意。任何人都可以发布帖子请求并删除您的数据库。但我决定让你怀疑并回答你的问题。
答案 5 :(得分:0)
对于所有这些混乱的家伙,很抱歉,实际问题是我在表单中有另一个表单。我不知道表单里面不能包含表单。删除了另一个表单,它可以正常工作