ajax を使用して大量のデータを送信する単純なフォームを取得しました。ブログ投稿を作成できる小さな CMS を作成しています。
ブログの JavaScript は次のようになります。
function SaveBlog()
{
document.getElementById("txtHint").innerHTML= 'Saving...';
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
var TitleVar = document.getElementById('title').value;
var editorText = CKEDITOR.instances.blogcontent.getData();
xmlhttp.open("GET","saveblog.php?id="+<?php echo $_GET['update']; ?> + "&title=" + TitleVar + "&context=" + encodeURIComponent(editorText),true);
xmlhttp.send();
}
これは背後にあるphpスクリプトです
$ID = $_GET['id'];
$con = mysql_connect("", "", "");
mysql_select_db("FP", $con);
$Title = $_GET['title'];
$Context = mysql_real_escape_string($_GET['context']);
mysql_query("UPDATE Blog SET BlogTitle='$Title', Entry='$Context' WHERE Identifier='$ID'");
//echo "ID: " . $_GET['id'] . " Title: " . $_GET['title'] . " Context: " . $_GET['context'];
echo '<b>Last Save: </b>' . date("F j, Y, g:i:s a");
約 2000 文字までしか送信していない場合、すべてがうまく機能します。その後、「保存中...」と表示されるだけで、他には何も表示されません。