我有2个文件可以帮助我删除文档和更新数据库。 我的第一个文件包含一个带有删除按钮的表单和一个名为remove()的javascript函数。第二个php页面将删除它不会返回任何结果的文件。
Remove.php的代码(在调用remove()函数时):
$Doc=$_GET['Doc']; //Value get from remove() function
$ID= intval($_POST['ID']);
$FirstReport= $_POST['FirstReport'];
$SecReport = $_POST['SecReport'];
$FirstReportPath= $_POST['FirstReportPath'];
$SecReportPath = $_POST['SecReportPath '];
$DB = new PDO('sqlite:/database/Student.db');
//If i click remove firstreport button, i'll check it to see if it's the same
if(($Doc) == ($FirstReport))
{
$result= $DB->query("Update Student set FirstReport='No' WHERE ID=".$ID);
//This unlink should remove the document file from the path.
unlink($FirstReportPath);
echo "success";
}
else
{
//same code repeated as if statement
}
Javascript功能
function RemoveDoc(Doc)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","functions/Resubmit.php?Doc="+Doc,true);
xmlhttp.send();
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText;
return false;
}
我确实尝试提醒(Doc)并且文档名称确实显示但是在第二个remove.php上,它没有运行任何编码。试过“GET”/“POST”也是一样的结果。好心提醒。
答案 0 :(得分:3)
看起来您发送了一个帖子请求,但是在网址中发送了一个$ GET变量的文档名称。
切换到get请求:
function RemoveDoc(Doc)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","functions/Resubmit.php?Doc="+Doc,true);
xmlhttp.send();
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText;
return false;
}
或将文档名称作为post参数发送:
function RemoveDoc(Doc)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","functions/Resubmit.php",true);
xmlhttp.send("Doc="+Doc);
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText;
return false;
}
此外,您不等待服务器的响应。
function RemoveDoc(Doc)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","functions/Resubmit.php",true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send('Doc='+Doc);
return false;
}
答案 1 :(得分:2)
您必须从$ _POST superglobal发送要发布的值广告。只需修改Javascript代码
即可
function RemoveDoc(Doc,FirstReport,SecReport,FirstReportPath,SecReportPath)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","functions/Resubmit.php",true);
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200)
document.getElementById("RemoveMsg").innerHTML=xmlhttp.responseText;
}
xmlhttp.send("Doc="+Doc+"&FirstReport="+FirstReport+"&SecReport="+SecReport);
//do for others also in the same way
return false;
}