qeeeekin
@qeeeekin (クエキン)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

formから送信したPOSTデータを受け取るとemptyになっている

POSTデータをきちんと受け取れるようにしたい

現在このようなループ処理の中で取得したidとnameの要素をinputタグの中のidとvalueに
割り当てる処理を実装しています。
そして割り当てたデータをjsのクリックイベント内でformのvalueに送りsubmitしているのですが受け取り先でデータを確認するとemptyになってしまうのを解決したいです。

該当するソースコード

index.html
<script type="text/javascript>
  $(document.ready(function() {
     $(.update).click(function(){
          var id = $(this).data('id');
          var name = $('#name_'+id).val();

          $('input[name="f_name"]'].val(name);

         document.simple_form.submit();
      );
});

</script>

<form method="POST" action="index.php" name="simple_form">
  <input type="hidden" name="alphabet" value="aaa">
  <input type="hidden" name="f_name" value="">
</form>


<?php foreach ($array as $key => $value): ?>
   <input type="hidden" id="name_<?= $value['id']?>" data-id="<?= $value['id'] ?>"value="<?= $value['name'] ?>" </input>
   <button class="update" id="update_<?= $value['id']?>" data-id="<?= $value['id'] ?>"type="button">更新</button>
<?php endforeach; ?>

その後取得したデータを受け取り先で確認するとデータがemptyで何も受け取れていません。

index.php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
   var_dump($_POST);
}
index.html
 array(size=0);
 empty

ですがvar_dumpの直後にexitして処理を止めるとpostされたデータが受け取れています。

index.php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
   var_dump($_POST);
   exit();
}
index.html
 array(size=0);
 'alphabet' = 'aaa'
 'f_name' = '佐藤'

思い当たったのは多重リクエストになっているのか、js側でのイベントの指定がよくないのか色々と調べたのですが直接的な原因が分かりません。
解決方法を教えていただきたいです。

0

2Answer

閉じタグなくしたのは意図的でしょうか?

index.html
- <script type="text/javascript>
+ <script type="text/javascript">
0Like

Comments

  1. @qeeeekin

    Questioner

    すみませんこちらに書き写した際の記入漏れです。

分からない点がいくつかあります。

  • index.phpのvar_dump()の出力結果がindex.htmlにある点
  • exitするとデータが受け取れている、とありますがarray(size=0);となっている点

現時点ではこちらに記載されていない部分(例えばver_dump()の前後)
に何か問題があるのではないかと思います。

0Like

Your answer might help someone💌