HTTP_Requestを使ってチェックボックスの情報を送信する

PEARのHTTP_Requestを使ってアクセスする方法はわかりました。
※先の記事「HTTP_Requestを使ってアクセスしてみた」参照

これを使って、いろいろ試していてちょっとはまったことがあったので、メモしときます。

チェックボックスの情報をPOST送信する

例えば、こんなチェックボックスを使ったフォームのページがあるとします。

< form method="POST" action="hogehoge.asp">
< input type="checkbox" name="koumoku" value="1"/>1< br />
< input type="checkbox" name="koumoku" value="2"/>2< br />
< input type="checkbox" name="koumoku" value="3"/>3< br />
< /form>

このページに対して、HTTP_Requestを使ってアクセスする時に、どのようにチェックボックスの情報を送信したらいいのかわからず、はまってしまいました。

調べてみたところ、フォームページのPOST先プログラムがASP(Active Server Pages)の場合には、

『,』で区切られた『1,2,3』といった文字列で渡されます。

ということなので、

< ?php
require_once 'HTTP/Request.php';   //PEARクラス呼び出し

$url = 'http://xxxxxxx.co.jp/hogehoge.asp';
$useragent = "[ユーザーエージェント]";

$rq = new HTTP_Request($url);
$rq->setMethod(HTTP_REQUEST_METHOD_POST);
$rq->addPostData('koumoku', '1,2,3');
$rq->setHttpVer('1.1');
$rq->addHeader('User-Agent', $useragent);
if ( PEAR::isError($rq->sendRequest()) ) {
  $err_msg = 'sendRequest()でエラー発生したため、処理を中断しました。';
  echo $err_msg;
  exit;
}
if ( $rq->getResponseCode() <> '200' ) {
  $err_msg = 'リターンコードが200以外だったため、処理を中断しました。';
  echo $err_msg;
  exit;
}
$getHtml = $rq->getResponseBody();
echo $getHtml;


?>

このような感じでやってみたらうまく処理されました。

参考資料
フォームのチェックボックスの値を次のページで読み込む方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です