AjaxでPHPにデータを渡そうとしたのですが

HTML/CSS/JavaScriptを扱っている方の為のコミュニティです。

色んな疑問や質問を皆で解決していきましょう!

※最初はjQuery限定のコミュでしたが、jQueryはJavaScriptのライブラリであり、
また、HTML/CSSも深く関わってくるので全部一つのコミュにまとめました。
フォーラム(掲示板)ルール
一般常識さえ守れば、どんなスレでも立てていただいて構いません。

常識外れの投稿やスレを見つけた場合は、私の判断で削除いたします。

スレ立てるまでもない、簡単な質問は、
「スレ立てるまでもない質問」のスレッドに投稿して下さい。

基本的には、一つの質問につき1つのスレッドを立てていただて構いません^^
返信
アバター
MoNoQLoREATOR
記事: 284
登録日時: 13年前
住所: 東京

AjaxでPHPにデータを渡そうとしたのですが

#1

投稿記事 by MoNoQLoREATOR » 13年前

AjaxでPHPにデータを渡そうとしたのですが、$_POST[]の部分で、指定したキーがみつからないというエラーが出てしまいます。

$_POST["data"] → "data" が見つからないというエラーが出る

PHPを呼び出す際に何かまちがっているのだと思うのですが、どうでしょうか?

※fileCom はグローバル変数です

コード:

function send()
{
	//↓IEとそれ以外でオブジェクトの生成方法を変えている↓
	if (window.XMLHttpRequest){
		fileCom = new XMLHttpRequest();
	}else{
		if (window.ActiveXObject){
			fileCom = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			fileCom = null;
		}
	}
	//↑IEとそれ以外でオブジェクトの生成方法を変えている↑
	
	//↓コメントの保存↓
	fileCom.open("POST", "writeCom.php");
	var gotCom = document.getElementById("edit").value;
	
			//コメントサイズ取得
			var getedComSize;
			if(document.getElementById("hutuu").checked==true){
				gotComSize = "30";
			}
			if(document.getElementById("dai").checked==true){
				gotComSize = "50";
			}
			if(document.getElementById("tokudai").checked==true){
				gotComSize = "80";
			}

	fileCom.send("comData=gotCom&comSizeData=gotComSize");
	//↑コメントの保存↑
}
PHPでは
$comment = $_POST["comData"];
$comSize = $_POST["comSizeData"];
と指定しています。

アバター
Ciel
記事: 252
登録日時: 13年前

Re: AjaxでPHPにデータを渡そうとしたのですが

#2

投稿記事 by Ciel » 13年前

setRequestHeaderメソッドを使って、↓のようにしてみてください。

fileCom.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");

文字コードは自分が決めた文字コードにしてくださいね。
oui C'est la Vie♪

アバター
kimuchi
記事: 163
登録日時: 13年前
住所: 東京

Re: AjaxでPHPにデータを渡そうとしたのですが

#3

投稿記事 by kimuchi » 13年前

エラー以外の部分で気になった点があります。

>31行目

コード:

fileCom.send("comData=gotCom&comSizeData=gotComSize");
この部分がおかしいです。
おそらく「gotCom」変数と「gotComSize」変数の情報を渡そうとしているのだと思いますが、
これでは「gotCom」と「gotComSize」の文字列データが渡されてしまいます。

コード:

fileCom.send("comData="+gotCom+"&comSizeData="+gotComSize);
このようにしてみて下さい。

追記:
以前紹介したサイトなんですが、あちらのサイトはAjaxとは何か、というレベルからの学習なので
PHPを介すような実用的な技術を扱っていません。
「ajax php」などで検索すればより有用な情報が得られると思います。

PHP+Ajaxで分かりやすいサンプルがあったので挙げておきます。
http://www.phppro.jp/school/ajax/vol1/4

アバター
MoNoQLoREATOR
記事: 284
登録日時: 13年前
住所: 東京

Re: AjaxでPHPにデータを渡そうとしたのですが

#4

投稿記事 by MoNoQLoREATOR » 13年前

ありがとうございます。解決しました。

ちなみにこれでコメント機能が完成しました。徹頭徹尾お世話になり、本当にありがとうございました。

返信

“HTML/CSS/JavaScript” へ戻る