アプリ版:「スタンプのみでお礼する」機能のリリースについて

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>

A 回答 (2件)

$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>
    • good
    • 0
この回答へのお礼

$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文の中にすら入ってきませんでした。。
遷移させようとしている先は別ページになります。

お礼日時:2013/03/07 19:03

とりあえずフォームの各要素にnameをつけてみては?

この回答への補足

name付けて見ましたがダメでしたヽ(´o`;

補足日時:2013/03/07 13:18
    • good
    • 0

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