重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

初めて質問します。わかりにくいかも知れませんが、どうぞよろしくお願いします。

当方、HTTPXMLオブジェクト(?)を使ってHTTP通信を試みていますが、phpでのPOST受信が出来ず困っております。

以下、要約したソースコードを掲載します。


javascript側-----------------

post_data = 'user_id='+ user_id +'&password=' + password;
//user_id,password共にテキストフォームに入力された変数です

(中略)

httpObj.open('POST','hoge.php',true);

httpObj.send(post_data);

//これで送信し

(中略)

a = httpObj.responceText

//で受け取っています。
----------------------------------

php側-----------------------------

$user_id = $_POST['user_id'];
$password = $_POST['password'];

~DB接続処理~

print $res;

//$resはjavascriptに送る文字列です

----------------------------------

と言うような感じなのですが、
javascript側の最後の a にはちゃんと $res の内容が格納され、表示もされることを確認しているのですが、
php側の$_POST['user_id']に何も入らずnullのままで、どうしたらいいのか途方に暮れています…。

蛇足かも知れませんが、念のためにHTML側のテキストフォーム部のソースだけを書いておきます。

<input type="text" id="user_id">ユーザ名
<input type="password" id="pass">パスワード
<input type="button" id="login" value="log in">

<form>タグは使わず、ボタンがクリックされたときに、テキストフォームの内容を読み取ってphpに値を投げると言うイベントハンドラ的な動作をしています。
フォームの内容はjavascriptで取れていますが、如何せんphpへ投げたときにphpが受け取ってくれない……

長文申し訳ございません。回答のほう、よろしければお願いします。

A 回答 (2件)

はずしてたらすみません。



もしデータをPOSTする必要がある場合、次の方法でrequestのMIME type を変更します:

http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

参考URL:http://developer.mozilla.org/ja/docs/AJAX:Gettin …

この回答への補足

すみません!どうやらそのコードをopen()前に書いてたからエラーになったみたいでした!
open()の後にそのコードを実行してみると、うまく動きました。
ありがとうございました!

補足日時:2006/09/03 07:17
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

このスクリプトを追加してみたところ、エラー表示が出て先に進めなくなりました…。
何故でしょうか?

お礼日時:2006/09/03 07:00

とりあえず、送信するのにJavaScriptを使わず、formタグで行ってみてはどうでしょうか?



それでうまくいかなければ、php側に問題がありそうでし、うまくいけばJavaScript側の問題と考えられると思います。

とにかく、どこに問題があるのかをはっきりさせるのが先決ではないでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

一度、HTML側にformタグを追加してやってみたところ、正常に動きました。
どうやらphp側には問題なさそうです。

お礼日時:2006/09/03 06:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!