JavascriptでPOSTの値を扱う方法

このQ&Aのポイント
  • JavascriptでPOSTの値を扱う方法について説明します。
  • 質問の状況において、OKボタンを押した場合にのみ削除を行う方法を教えます。
  • Javascriptの記述方法について疑問をお持ちのようですが、具体的な解決策をご説明します。
回答を見る
  • ベストアンサー

JavascriptでPOSTの値を扱う方法

head部分 function respConfirm () { var response = confirm('本当に削除しますか?'); if (response) { goto('manage.php'); }; } <form action="respConfirm()" method="POST"> <input type=image src="<?php echo $basedir; ?>/includes/images/icon_delete.png" name="delete" value="<?php echo $f1; ?>" alt="delete" width="20" height="20"> </form> このように書きましたが、「OK」を押しても「キャンセル」を押しても$_POSTが送信されて、項目が削除されてしまいます。どうやって記述すれば「OK」ボタンを押した場合のみに削除を行うようにできますか? Javascriptに疎すぎてすみません。 ご回答を宜しくお願いします。

  • 2B2B
  • お礼率100% (60/60)

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

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.2

>たとえば「"ユーザーA"を本当に削除しますか」を表示させる。 ><form action="manage.php" method="post"> ><input type="hidden" value="ユーザーA" /> ><input type="submit" onclick="return kakunin();" value="削除" /> ></form> この場合は、DOMを解析しなければいけません。 >JQueryで扱ったほうが便利なのかな?そういう簡単な操作のためだけにJQueryを入れるのは割に会わないけどなあと感じています。 たしかに、jQuery利用したほうが簡単ではありますが(というか直感的に理解しやすい)、利用しなくても、もちろん出来ます。 #もし、jQueryを利用するなら、onclickとかのHTMLによるハンドラも分離させるのが良いでしょう。 一番簡単なのはidを使ってしまうことです。 こんな感じでしょうか? <script> function kakunin() {  var user = document.getElementById("user");  return confirm(user.value + "を本当に削除しますか?"); } </script> <body> <form action="manage.php" method="post"> <input type="hidden" value="ユーザーA" id="user" /> <input type="submit" onclick="return kakunin();" value="削除" /> </form> </body>

2B2B
質問者

お礼

できました!本当にありがとうございました。たいへん勉強になりました。

その他の回答 (1)

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

actionではなくonsubmitでrespConfirm()を呼び出し、falseをreturnすれば、submitが無効になるようです。 http://www.tohoho-web.com/js/onevent.htm#onSubmit こんなんでどうでしょう? <form action="manage.php" method="POST" onsubmit="return confirm('本当に削除しますか?');"> ... #確認してないので、ダメだったらすみません。

2B2B
質問者

お礼

ありがとうございます。動きました。 お手数ですが、Javascript警告ダイアログでフォームの$_POST値とかを引数にするのはおわかりでしょうか? たとえば「"ユーザーA"を本当に削除しますか」を表示させる。 <form action="manage.php" method="post"> <input type="hidden" value="ユーザーA" /> <input type="submit" onclick="return kakunin();" value="削除" /> </form> JQueryで扱ったほうが便利なのかな?そういう簡単な操作のためだけにJQueryを入れるのは割に会わないけどなあと感じています。 宜しくお願いします。

関連するQ&A

  • JAVASCRIPT

    JAVASCRIPT内にwindow.confirmの中にPHPを入れたい。どうしたらいいでしょうか? <script> function onClickSave() { if(document.form.reportValidity() && window.confirm('<?php echo $PASSSWRD_CHANGE[STR_PASSWD_UPDATE] ?>)'){ document.form.submit(); } } </script>

  • postのタイムラグ

    以下のソースでPOSTの値が取れないときがあるので困っています。 具体的にはページを表示してから30秒程度待ってからの クリックじゃないとPOSTの値が取れません。 GETの場合はページ表示後すぐにボタンをクリックしても大丈夫でした。 原因が分からず途方に暮れています。 お知恵をお貸しください。 PHP Version 5.2.3 <?php $P_data = $_POST["pg"]; print("POST=>".$P_data."<BR>"); $G_data = $_GET["pg"]; print("GET=>".$G_data."<BR>"); print <<< DOC_END <html> <head> </head> <body> DOC_END; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=1>"; echo"<input type=submit value=あ>"; echo"</form>"; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=2>"; echo"<input type=submit value=い>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=3>"; echo"<input type=submit value=う>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=4>"; echo"<input type=submit value=え>"; echo"</form>"; print <<< END </body> </html> END; ?>

    • 締切済み
    • PHP
  • php $_SESSIONで値が消える。

    いつもお世話になり誠にありがとうございます。 標記の件。 インプット画面ー>確認画面ー>戻るー>インプット画面 インプット画面に戻った時、どうしても最初のインプット画面で打った内容が消えてしまいます。 プログラムを診て、誤りを指摘して頂けないでしょうか? どうぞよろしくお願い致します。           記 <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['email'] = $_POST['email']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['email'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!DOCTYPE html> <html lang="ja"> <head> </head> <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <form method=post> お名前(ニックネーム)<br> <input type="text" name="name" value="<?php echo $_SESSION['name'] ?>"><br> Eメール<br> <input type="email" name="email" value="<?php echo $_SESSION['email'] ?>"><br> カテゴリー<br> <input type="text" name="category" value="<?php echo $_SESSION['category'] ?>"><br> 本文<br> <textarea style="font-size:1.5em;" cols="30" rows="80" name="message"><?php echo $_SESSION['message'] ?></textarea><br> <input type="submit" name="confirm" value="確認" /> </form> <?php }else if( $mode=='confirm'){ ?> <!--確認画面--> <form method="post"> <?php echo $_SESSION['name']?><br> <?php echo $_SESSION['email']?><br> <?php echo $_SESSION['category']?><br> <br> <?php echo nl2br($_SESSION['message'])?><br> <input type="submit" name="back" value="戻る"/> <input type="submit" name="send" value="送信"/> } </form> <?php } else { ?> <!--完了画面--> <?php } ?> </body> </html>

    • ベストアンサー
    • PHP
  • 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>

  • checkboxの初期値設定(postの時)

    php初心者です。 以下はどのようにやればいいのでしょうか。 色々調べたのですが、考え方がわからず困っています。 (やりたい事) (1)入力画面(index.php)にチェックボックス (赤、青、黄、緑)つくる (2)確認画面(confirm.php)にpostで飛ばす (3)修正があれば、index.phpに戻るが、 チェックしたものが保持された状態で 戻る。 このような事をしたいのですが、以下で手が止まって しまいました。 ◆index.php <?php <form method="post" action="confirm.php"> <input type="checkbox" name="colors[]" value="赤">赤 <input type="checkbox" name="colors[]" value="青">青 <input type="checkbox" name="colors[]" value="黄">黄 <input type="checkbox" name="colors[]" value="緑">緑 <input type="submit" value="送る"> </form> ?> ◆confirm.php <?php  <form method="post" action="index.php">  foreach ($_POST['colors'] as $color){  echo $color ." /"; } <input type="submit" value="戻る"> </form> ?> これをどう加工していけばよいか、よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの変数をJavaScriptに渡したい

    PHPの中にJavaScritの確認ダイアログを表示しています。 PHPの変数をJavaScript内でも使いたいのですが、どのようにすればよいのでしょうか? <?php $number=$_POST["number"]; if(isset($_POST["delete"])) { //選択したデータの削除 //削除の確認 print("<script language='JavaScript'>"); print("res=confirm('削除してもよいですか');"); print("if(res==false) location.href='delete.php?number=$number';"); print("</script>"); ?> また、<?php  ?>内でJavaScriptを使っているのでprint文でJavaScript文を書いていますが、あまりスマートではありません。 これ以外の記述方法はあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • POSTされた値をEUCで表示したい

    <?php echo '<html><head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> </head> <body> <form action="test2.php" method="POST"> <input name="str1" value="テストです"> <input type="submit"> </form> </body></html>'; exit; } ?> こうして送信されたデータは <?php echo '<html><head> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> </head><body>'; echo $_POST['str1']; ・・・・・ として表示しますが、このままのテストソースではSJISで普通に表示されますが、EUCで表示するにはWindowsの中のphp.iniを編集すればよいと思います。 どのようにすればよいですか? test2.phpが・ニ・ケ・ネ、ヌ、ケと表示したら成功です。

    • 締切済み
    • PHP
  • $_POST,$_GETの値が空...

    はじめまして。まだまだPHP初心者なのですが.. PHP Ver 4.3.2 にて、$_POST 、 $_GET の値がどうしても 受け取れないのですが、何か設定がおかし いのでしょうか... ちなみに、register_global は OFF です。 GET は URL http://***.com/xxx.php?ID=aaa echo $_GET["ID"]; print_r ( $_GET ); POSTは、通常通り form の method を POSTに設定して 受け取っていますが、どちらにしても結果は、何も表示されません。 どなたか解決方法をご教授下さい。 また、既出でしたら申し訳ございませんがご指摘下さい。

    • ベストアンサー
    • PHP
  • POSTされない

    xamppにてローカル環境でやっているのですがなぜか type="file"だけPOSTされません。 ie6とfairefox3で試しましたが取得できませんでした。 調べてみたのですが同様の事例が見つからずわからかったのですが これは何が原因なのでしょうか? ---html--- <form action="index.php" method="post" enctype="multipart/form-data"> <input type="text" name="name" /> <input type="file" name="img" /> <input type="submit" name="send" value="送信する" /> </form> ---php--- if (isset($_POST['send'])) { echo '<pre>'; print_r($_POST); echo '</pre>'; } print_r($_FILES);を試すと正常に値が表示されます。全く意味不明 なのですが何かセキュリティ上の問題などが原因なのでしょうか?

    • 締切済み
    • PHP
  • 削除確認のアラートを出したい

    お疲れ様です。 お世話になっております。 過去ログでもいくつか出てることは承知の上で、質問させていただきます。 フォームの流れとしては、 チェックボックスで削除したい項目にチェック(仮に1番と7番をチェック) 削除ボタンを押す 下記のデータを削除します。よろしいですか? 1番 7番 OKを押すと削除 キャンセルを押すと戻る。 です。 POSTされた内容をアラート画面に表示させたいです。 JSはさっぱり手をつけたことがないので、POSTの受け取り方がわからないのですが、 過去ログを見ながら書いてみると、 <<JS>> func chk_del{ return window.confirm('これらの情報を削除します。よろしいですか? + POSTのデータ表示'); } <<html>> <form method="post" action="delete.php" onsubmit="return chk_del();"> <input type="checkbox" id=1>1番.... ....<input type="checkbox" id=7>7番 <input type="submit" value="削除" name="delete"> </form> これだと今のところまだconfirmが出ずにデリートされてしまうのですが、このような流れです。 恐れ入ります。どのように記述すればいいか教えていただけませんでしょうか。

専門家に質問してみよう