我有一个问题。我有一个php文件,包含删除,插入和显示数据的查询。文件中还有一个删除按钮。要执行删除查询,它将类似于
if($_POST['delete'])
{
//execute delete query
}
位于PHP文件中。现在我已经实现了ajax并且我想仅在单击按钮时执行删除查询,而是通过使用javascript中的函数(我不太确定这是正确的方式还是最合适的方式)。因此,每次单击删除按钮时,都会执行一个javascript函数,以便ajax可以工作。但它似乎没有做任何事情。我是通过使用javascript函数在按钮点击时执行的正确方法,还是有其他更好的方法吗?我之所以这样做是因为我希望所有查询都在一个文件中,这就是为什么我使用if
语句来检测之前是否点击了该按钮。
P.S。我正在使用纯JavaScript代码,因为我还在学习,所以如果有任何建议,我更喜欢原始代码而不是jQuery。如果您想查看代码,请发表评论,因为我之前已经提出类似的问题,但我找不到我想要的答案。
编辑:以下是代码
这是javascript外部文件(仅限删除功能)
function deleteButtonClick(){
//Perform the Ajax request to delete this user
var del = document.getElementById("delete").innerHTML;
var delRow = document.getElementById("deleteRow").innerHTML;
var page = "database.php";
var parameters = 'delete=true&deleteRow='+delRow;
var xmlhttp = new XMLHttpRequest();
if(confirm('Are you sure you want to delete this?')==true){
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
return false;
}
}
xmlhttp.open("GET", page+"?"+parameters, true);
xmlhttp.send(null);
}
}
这些是PHP文件中用于执行查询的代码
// Delete Row
if(isset($_POST['delete'])){
$id = $_POST['deleteRow'];
$query_string = "delete from $table_info where user_id='$id'";
$result = @mysql_query($query_string);
echo "row deleted";
}
这些是同一个PHP文件中的代码,用于表中每行的删除按钮
echo "<td><input type='hidden' id='deleteRow' value=".$row['user_id']."/>";
echo "<input type='button' id='delete' value='Delete' onclick='deleteButtonClick()'/></td>";
echo "</tr></form>";
答案 0 :(得分:0)
我设法以最简单的方式编写代码。
function deleteThis(count){
var id = document.getElementById("row"+count).innerHTML;
var page = "database.php";
var parameters = 'id='+id+'&action=delete';
var xmlhttp = new XMLHttpRequest();
if(confirm('Are you sure you want to delete this?')==true){
if(xmlhttp==null){
alert("Your browser does not support ajax!");
return false;
}
xmlhttp.onreadystatechange=function(){
document.getElementById("divTable").innerHTML=xmlhttp.responseText;
};
xmlhttp.open("GET", page+"?"+parameters, true);
xmlhttp.send(null);
}
}
在PHP文件中:
.
.
Some other codes
.
.
function insertRow($name, $address, $phone, $gender, $nation){
$table_info = "info";
$query_string = "insert into $table_info(name, address, phone, gender, nation) values('$name', '$address', '$phone', '$gender', '$nation');";
$result = @mysql_query($query_string) or die (mysql_error());
}
?>
<?php
$action = rtrim($_REQUEST['action']);
if($action=="delete"){
$id = rtrim($_REQUEST['id']);
echo deleteRow($id);
echo update_database();
}
elseif($action=="insert"){
$name = $_REQUEST['name'];
$address = $_REQUEST['address'];
$phone = $_REQUEST['phone'];
$gender = $_REQUEST['gender'];
$nation = $_REQUEST['nation'];
echo insertRow($name, $address, $phone, $gender, $nation);
echo update_database();
}
else{
echo update_database();
}
?>
基本上,我忽略了php的功能,忘记了我仍然可以用函数操纵整个逻辑。我完全从按钮中删除了整个表单和隐藏的输入,并使用onclick执行基于变量$count
的函数。每次添加一行时它会递增,这使得我更容易使用数据库中可用的实际唯一ID。之后我所要做的只是请求我需要的数据,并在我的函数中使用它来解释查询。