0

投稿リクエストとPHPファイルを送信してファイルに書き込む、テスト用に「ダミーテキスト」を使用してメッセージを送信しました

//FILE - SSE.html
// xmlhttprequest post

//function.................................................

function loadXMLDoc(){    
var xmlhttp;    
if (window.XMLHttpRequest){       
xmlhttp=new XMLHttpRequest();      
console.log("request made");  
}     
else      
{     
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");      
}   
xmlhttp.onreadystatechange=function(){   
if (xmlhttp.readyState==4 && xmlhttp.status==200){      

console.log(xmlhttp.responseText);
}   
 }   

xmlhttp.open("POST","writeToFile.php",true);    
xmlhttp.setRequestHeader("Content-type","text/plain;charset=UTF-8");   
xmlhttp.send("dummy text");   
}

// html body.................................................
<form>
<textarea name="q" onKeyUp="loadXMLDoc()" id="ta1" cols=40 rows=10></textarea>
</form>
<textarea id="ta2" cols=40 rows=10></textarea>

//PHP file.......

<?php 


$clientData=$_POST["q"];  

$File = "WrittenByPHP.txt";   
$Handle = fopen($File, w');    
$Data = $clientData;   
fwrite($Handle, $Data);   
fclose($Handle);   ?>

コンソールの RESULT........いくつかのジャンク値.................................

request made SSE.html:46
( ! ) Notice: Undefined index: q in C:\wampnew\www\RD\writeToFile.php 4行目 Call Stack #TimeMemoryFunctionLocation 10.0003252112{main}( ..\writeToFile.php : 0

-------------------------------------------------- -------------------------- なぜ上記のジャンク コードが発生したのですか? よろしくお願いします。

4

1 に答える 1

0

スクリプトを確認isset()して終了します。

<?php
    if(isset($_POST["q"])){

        $clientData = $_POST["q"]; 
        $File = "WrittenByPHP.txt";
        $Handle = fopen($File, 'w');    
        $Data = $clientData;   
        fwrite($Handle, $Data);   
        fclose($Handle);
        die;
    }
?>

qパラメータをpostで送信する必要があります。

var params = "q="+document.getElementById('ta1').value;
xmlhttp.open("POST","ajax.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);

形:

<form>
   <textarea name="q" onKeyUp="loadXMLDoc()" id="ta1" cols=40 rows=10></textarea>
</form>

これは毎回送信されonKeyUpます。次のように変更する必要がありますonblur

于 2012-10-03T08:16:32.067 に答える