私のコードは以下のとおりです。関数 mr に id=content を送信したいです。そして、渡されたid=resultに結果を書き込みます。このhtmlファイルだけですが、別のhtmlページでもこの関数を使えるようにしたいので、別のutil.jsファイルにこの関数を追加したいです。
Add Item:
<input type="text" name="name" id="content">
<br>
<button onclick="javascript:mr('POST',content,result,'post.php');"
type="button"
id="btn1">
Submit
</button>
<br>
<button onclick="javascript:mr('GET',content,result,'get.php');" type="button"
id="btn2" >
List Jobs
</button>
<div id="result"></div>
関数 mr は次のようなものです。これは ajax の post および get 操作用です。
function mr(type,content,result,URL) {
var hr = new XMLHttpRequest();
//var content = document.getElementById("content").value;
var vars = "content=" +content;
if (type == 'GET')
URL = URL + '?' + vars;
hr.onreadystatechange = function() {
if (hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("result").innerHTML = return_data;
}
}
hr.open(type, URL, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
switch(type) {
case 'GET':
hr.send();
break;
case 'POST':
hr.send(vars);
break;
}
document.getElementById("result").innerHTML = "Processing...";
}
</script>
post.php
<?php echo "POST\n"; if(isset($_POST)) print_r($_POST); ?>
get.php
<?php echo "GET\n"; if(isset($_GET)) print_r($_GET); ?>
submit をクリックすると、次の出力が得られました。
POST Array ( [content] => [object HTMLInputElement] )
リストボタンをクリックすると、出力が表示されます。
GET Array ( [content] => [object HTMLInputElement] )