先日、http://dixq.net/forum/viewtopic.php?f=51&t=7642のトピックにて、
ajaxでのPOST送信についてアドバイスして頂き、なんとか実装することができました。
ですが、IEでのみ上手くPOST送信ができ、firefoxとchromeでは上手くいかず、データがヌルになってしまっている
ようです。
PHP側でどうデバッグしようか良い方法が思いつかなかったのですが、
とりあえず値をファイルに書き出して調べることにしたところ、IEのみ値が書き込まれ、firefoxとchromeは
nullでした。
当然掲示板にもIEのみ書き込みがされ、firefox,chromeはnullが書き込まれました。
javascriptのみ版とjquery版とを両方作ったのですが、どちらも結果は同じでした。
コードを載せておきます。
方法としては、送信したいデータをURLエンコードし、各name属性の名前と全部くっつけて一つのデータとし、
送信している感じです。
PHP側のコードは貼ってませんが、ただ$_POST['subject']などでアクセスして、データを取り出しているだけです。
firefoxとchromeだけ、何故nullになってしまうのか、
何か考えられる原因として、思い当たるものがあれば教えていただきたいです。
よろしくお願い致します。
function WriteDataSend(object){
var name=document.getElementsByName("namae");
var subject=document.getElementsByName("subject");
var sentence=document.getElementsByName("sentence");
var namestr=encodeURIComponent(name[0].getAttribute('value'));
var subjectstr=encodeURIComponent(subject[0].getAttribute('value'));
var sentencestr=encodeURIComponent(sentence[0].getAttribute('value'));
//文字をURLエンコードしてname属性とくっつける。基本的に(name属性名=値)でよい。
var alldata="namae="+namestr+"&subject="+subjectstr+"&sentence="+sentencestr;
$.ajax({
async : true,
url : "write.php",
data : alldata,
type : "POST",
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success : function(msg){
$(msg).insertAfter(object).css("display","none").show(1000);
}
});