- 締切済み
javascriptでpostした値が取得できない
javascriptのsubmit()を使ってpostした値が取得できません プログラム自体が素人に近い自分なのですが助けていただきたいです。。。 ページ内にある複数のボタンを5つ押した場合に違うページに押下したid配列と共に送りたいと考えました。 onoffの部分で5回ボタンが押されたら特定のページに遷移するところまではできたのですが、 遷移先でphpのvar_dump($_POST)で確認したところ array(0) { } が返ってきました。送信する前にデータが入ってるかalertで確認したのですが、そのときはちゃんと入っておりました。 取得方法が悪いのかはたまた送信方法が悪いのか混乱してしまい、今回質問させていただきました。 わかる方いらっしゃいましたらご教授よろしくお願いいたします。 member = new Array(); function cardonoff(id){ // ボタン押されてなければ if(document.getElementById("member"+id).value != "登録完了"){ document.getElementById("member"+id).value = "登録完了"; document.getElementById("member"+id).style.background = "#FF0000"; document.getElementById("member"+id).style.color = "#FFFFFF"; // ID追加 member.push(id); alert(member.length + "人のIDは" + member); if(member.length == 5){ alert("5人選択されました"); // 文字列に置き換え var memberlist = member.join(','); document.getElementById('memberid').value = memberlist; document.getElementById('memberselect').submit(); } } } form部分 <form id="memberselect" action="./" method="POST"> <INPUT type="hidden" id="memberid" value="" /> <?php foreach($result as $data){ ?> <section> <div class="category"> <h2> <input type="button" id="member<?php echo $data["id"]; ?>" value="メンバー登録" style="width:150px; height:30px" onClick="cardonoff(<?php echo $data["id"]; ?>)"> </h2> </div> </section> <?php } ?> </form>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
$resultの仕様がわからないので適当に調整します みやすくするためhiddenはtextに、actionは自分に戻すようにしてありますが 適宜読み変えてください <?PHP if(isset($_POST) and count($_POST)>0) var_dump($_POST); $result=array(array("id"=>1),array("id"=>2),array("id"=>3),array("id"=>4),array("id"=>5)); ?> <script> member = new Array(); function cardonoff(id){ if(document.getElementById("member"+id).value != "登録完了"){ document.getElementById("member"+id).value = "登録完了"; document.getElementById("member"+id).style.background = "#FF0000"; document.getElementById("member"+id).style.color = "#FFFFFF"; member.push(id); alert(member.length + "人のIDは" + member); if(member.length == 5){ alert("5人選択されました"); var memberlist = member.join(','); document.getElementById('memberid').value = memberlist; document.getElementById('memberselect').submit(); } } } </script> <form id="memberselect" action="<?PHP echo$_SERVER["SCRIPT_NAME"];?>" method="POST"> <INPUT type="text" id="memberid" name="memberid" value="" /> <?php foreach($result as $data){ ?> <section> <div class="category"> <h2> <input type="button" id="member<?php echo $data["id"]; ?>" value="メンバー登録" style="width:150px; height:30px" onClick="cardonoff(<?php echo $data["id"]; ?>)"> </h2> </div> </section> <?php } ?> </form>
- yambejp
- ベストアンサー率51% (3827/7415)
とりあえずフォームの各要素にnameをつけてみては?
補足
name付けて見ましたがダメでしたヽ(´o`;
お礼
$resultの中には他にも情報が入っております。それをforeachで回して、いくつかデータを摘出しておりますが、混乱させないためにその他の情報は省略させていただいております。 ご教授いただいた内容でやりましたが、 if(isset($_POST) and count($_POST)>0) var_dump($_POST); $result=array(array("id"=>1),array("id"=>2),array("id"=>3),array("id"=>4),array("id"=>5)); if文の中にすら入ってきませんでした。。 遷移させようとしている先は別ページになります。