こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プルダウンの選択値のPOSTに関して

プルダウンの選択値のPOSTに関して

ある画面に検索条件としてプルダウンを設け、その中のどれでも構わないが選択された
場合に別画面にその情報を渡し、別表の絞込みをかけるようなソースをPHPも使って記述
しています。

その際に、プルダウンの情報は連携できたものの、それだけでなくラジオボックスで選択
された情報も受け渡ししたいと考えています。

このような場合はどのように記述すれば良いでしょうか。。。

わかりにくい内容で申し訳ありませんが、教えて頂ければ幸いです。

よろしくお願いします。

<script>
function getDataPost( serverURL, objID ,obj){
var ajax = createXMLHttpRequest();

ajax.open( "POST", serverURL );
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange=function(){
 if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
  if(objID!=""){
   var obj = window.parent.b.document.getElementById( objID );
   obj.innerHTML = ajax.responseText;
  }
 }
}
ajax.send( obj.name+"="+obj.value );
}
</script>

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>検索条件</title>
<base target="main">
</HEAD>
<BODY>
<td><font color=red SIZE="2">
<td align="right" style="padding:0px 13px;font-size:16px">
<form method="POST" action="AAA.php" target="sub">
<p>部署名:<select name="fuga" onchange="getDataPost('AAA.php','hoge',this)">
<?php
$count = 0;
for($i=0;$i<$row;$i++) {
print("<option value='部署コード'> 部署コード</option>\n");
$count++;
}
print("</select>\n");

?>

//********ここから下の選択したラジオボックスの値を一緒にPOSTしたい**********//
<input type="radio" name="q1" value="1" checked> A表
<input type="radio" name="q1" value="2"> B表
//**************************************************************************//

</form>
<div id="hoge"></div>
</BODY>
</HTML>

投稿日時 - 2010-08-30 13:55:32

QNo.6146208

すぐに回答ほしいです

質問者が選んだベストアンサー

場合の受け取り側はどのように記述すれば良いでしょか。。。

==>それは...
別表の絞込みをかけるようなソースのロジックがわからないので、
ソースを書こうとしても、どうしようもないですが、
POSTされた値の取得なら、AAA.phpの中で
 $_POST['fuga'] <------ <select name="hoge">のvalue
 $_POST['q1'] <------ チェックされた<input type="radio" name="q1">のvalue
に格納されてます。

http://www.php.net/manual/ja/language.variables.external.php

今回の場合は、value値はユーザーが手で入力するものじゃないから、
htmlspecialcharsとかuridecodeとか不要だし、送る時もuriencode
する必要なかったです。

投稿日時 - 2010-08-30 18:27:18

お礼

ありがとうございます!!!  できました!!!!

本当にありがとうございました!!!

投稿日時 - 2010-08-30 18:36:56

ANo.3

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

いろいろ、細かいところミスってました。
↓です。

<script type="text/javascript">
function getDataPost( serverURL, objID ,obj){
var ajax = createXMLHttpRequest();
ajax.open( "POST", serverURL );
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.onreadystatechange=function(){
 if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
  if(objID!=""){
   var obj = window.parent.b.document.getElementById( objID );
   obj.innerHTML = ajax.responseText;
  }
 }
}
var other_parm="";
var elms=obj.form.elements;
for (var i=0;i<elms.length;i++){
if(elms[i].type=="radio"){
if(elms[i].checked==true)
other_parm += "&" + elms[i].name+"=" + elms[i].value
}
}
ajax.send(encodeURIComponent(obj.name+"="+obj.value + other_parm));
}
</script>

投稿日時 - 2010-08-30 17:25:03

補足

ソースまで記述して頂き、本当にありがとうございます。

もう1点だけ教えて下さい。

この場合の受け取り側はどのように記述すれば良いでしょか。。。

何から何まで聞いて申し訳りませんが、よろしくお願いします。

投稿日時 - 2010-08-30 18:03:53

ANo.1

どのradioボタンがチェックされてるか、
getDataPost(){}内で判定して、
ajax.send( obj.name+"="+obj.value );に
追加してしまいましょう

var other_parm="";
var elms=obj.form.elements;
for (var i=0;i<elms.length;i++){
if(elms[i].type="radio" && elms[i].checked==true)
other_parm += "&" + elms[i].type+"=" + elms[i].value
}
ajax.send(uriencode(obj.name+"="+obj.value + other_parm));


の部分で、そのradioボタンのnameと値も渡せばよいのです。

投稿日時 - 2010-08-30 15:00:23

補足

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

無知なもので大変申し訳ありませんが、この記述をソースのどの部分に追加させれば
良いのでしょうか。。。

getDataPost内に追加しましたが、どうしてもエラーとなってしまう為、、、

メッセージ: 'form.elements' は Null またはオブジェクトではありません。

教えて下さい。

よろしくお願いします。

投稿日時 - 2010-08-30 15:35:51