フォームに関しては、リクエスト メソッド (GET と POST) の送信の問題が関係します。GET と POST の使用法と違いについては、この記事では詳しく説明しません。一般に、Web 開発では、POST 値の送信は暗黙的に行われます。送信されるデータ量が多いため、より一般的に使用されます。この例では、functions.js を以下のように変更し、XMLHttp オブジェクトプログラムを関数 processajax として作成します。
コードをコピーします コードは次のとおりです:
function processajax (serverPage, obj, getOrPost, str){
//XMLHttpRequest オブジェクトを作成し、getxmlhttp() 関数に書き込み、オブジェクトを取得します。
xmlhttp = getxmlhttp ()
//GET メソッド (前の記事と同じ)
if (getOrPost) == "get") {
xmlhttp.open("GET", serverPage);
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ){
obj .innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null)
}
//POST メソッド
else{
// 3 番目の true パラメータは非同期関数を開きます
xmlhttp.open("POST", serverPage, true);
//POST リクエストを作成します
xmlhttp.setRequestHeader("Content-Type"," application/x-www-form -urlencoded; charset=GB2312");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
obj.innerHTML = xmlhttp.responseText ;
}
}
//フォームパス値
xmlhttp.send(str);
下の図では「送信」ボタンをクリックするとsubmitform関数(functions.js)がトリガーされ、この関数ではgetformvalues関数を使用してフォームの内容が入力されているかどうかを確認します。を選択すると、どの項目が入力されていないかを確認するメッセージが表示されます。チェックに合格すると、process_task.php プログラムが呼び出され、Form 値がデータベースに書き込まれます。
コードをコピー コードは次のとおりです:
function submitform (theform, serverPage , objID, valfunc){var file = serverPage;
//フォームの値を確認します
var str = getformvalues(theform,valfunc);
//フォームにすべて入力します
if ( aok == true) {
obj = document.getElementById(objID);
//Ajax を実行して value
processajax(serverPage, obj, "post", str);
>}
getformvalues 関数:
コードは次のとおりです: function getformvalues (fobj, valfunc){
var str = "";aok = true;
var val
//For(var i) = 0; i < fobj.elements.length; i ){
if(valfunc){
if (aok == true){
val = valfunc (fobj.elements[i].value, fobj.elements[i].name);
if (val == false){
aok = false;
}
}
str = fobj.elements[i ].name "="escape(fobj.elements[ i].value) "&";
}
//フォームの値を文字列として返します
return str; 🎜>
process_task.php プログラム:
コードをコピー
コードは次のとおりです:
$myquery = "INSERT INTO タスク (名前, 日付, 説明) VALUES ( '$yourname','$thedate','$yourtask')"; ){
header ("Location: theform.php? message=エントリに問題がありました。");
exit;
}
//成功メッセージを返します
header ("場所: theform.php?message=Success");
?>
ソース コードのダウンロード