これは、従業員名、empno、empsal、および doj (入社日) を含む私の単純なフォームです。ここでは、このフォームの値を XMLHttpRequest オブジェクトを介して非同期に送信し、myDiv の DOM で requestTxt を更新して投稿しています。
ここで、このようなパラメーターを渡すと、php echo $empname で値を取得できます。「私の名前です」;
var params = "empname="+myname+"&empno="+myno+"&empsal="+mysal+"&empdoj="+mydoj;
しかし同時に、文字列化されたオブジェクトとして渡すと、なぜ印刷されないのかわかりません
var params = {
"empname":myname,
"empno":myno,
"empsal":mysal,
"empdoj":mydoj
};
var jsonText = JSON.stringify(params);
alert(jsonText);
ここに私のコード index.htmlがあります
<!DOCTYPE html>
<html>
<head>
<meta charset="windows-1252">
<title>Sample form</title>
<style>
table td{
border-collapse:collapse;
border:1ps solid #000;
}
.hide{
display:none;
}
</style>
<script type="text/javascript" src="util.js"></script>
</head>
<body>
<form name="sampleForm" id="sampleForm" action="javascript:return false;">
<table width="40%">
<tr>
<td>Employee Name:</td>
<td><input type="text" name="empname" id="empname"/></td>
</tr>
<tr>
<td>Employee No:</td>
<td><input type="text" name="empno" id="empno"/></td>
</tr>
<tr>
<td>Employee salary:</td>
<td><input type="text" name="empsal" id="empsal"/></td>
</tr>
<tr>
<td>Employee DOJ:</td>
<td><input type="text" name="empdoj" id="empdoj"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submitBtn" id="submitBtn1" /></td>
</tr>
</table>
<div class="hide" id="myDiv"></div>
</form>
<script type="text/javascript">
var subform = document.getElementById("sampleForm");
subform.onsubmit = function(){
var myReq;
var uRLTxt = "loginCheck.php";
var myname = document.getElementById("empname").value;
var myno = document.getElementById("empno").value;
var mysal = document.getElementById("empsal").value;
var mydoj = document.getElementById("empdoj").value;
/*var params = "empname="+myname+"&empno="+myno+"&empsal="+mysal+"&empdoj="+mydoj; */
var params = {
"empname":myname,
"empno":myno,
"empsal":mysal,
"empdoj":mydoj
};
var jsonText = JSON.stringify(params);
alert(jsonText);
myReq = new XMLHttpRequest();
myReq.open("POST",uRLTxt,true);
myReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//myReq.setRequestHeader("Content-type", "application/JSON; charset=utf-8");
myReq.setRequestHeader("Content-length", jsonText.length);
//alert(jsonText.length);
myReq.setRequestHeader("Connection", "close");
myReq.onreadystatechange = function() {
if(myReq.readyState == 4 && myReq.status == 200){
var return_data = myReq.responseText;
console.log(return_data);
document.getElementById("myDiv").style.display = "block";
document.getElementById("myDiv").innerHTML = return_data;
}
}
myReq.send(jsonText);
return false;
};
</script>
</body>
</html>
PHP コード - loginCheck.php
<?php
$empname = isset($_REQUEST['empname']);
$empno = isset($_REQUEST['empno']);
$empsal = isset($_REQUEST['empsal']);
$empdoj = isset($_REQUEST['empdoj']);
echo $empname."is my name";
?>