1

ドキュメントの削除とデータベースの更新に役立つ2つのファイルがあります。私の最初のファイルは、削除ボタンとremove()と呼ばれるjavascript関数を備えた1つのフォームで構成されています。2番目の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;
 }

私はalert(Doc)を実行しようとしましたが、ドキュメント名は表示されますが、2番目のremove.phpでは、コーディングは実行されません。「GET」/「POST」も同じ結果を試しました。親切なアドバイス。

4

2 に答える 2

3

投稿リクエストを送信しているように見えますが、$GET変数であるURLでドキュメント名を送信しています。

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;
 }

または、ドキュメント名を投稿パラメータとして送信します。

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;
}
于 2012-07-12T16:34:55.680 に答える
2

$ _POSTスーパーグローバルからアクセスするには、値の広告投稿を送信する必要があります。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;
}
于 2012-07-12T17:10:12.710 に答える