質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1911閲覧

Jqueryでアラートの確認ボタンを押してからphp側のPOST送信を実行したい

memimemi

総合スコア25

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/06/01 22:55

編集2019/06/01 22:57

やりたいこと

SweetAlert2というライブラリを使用して、アラートを表示しOKを押した後フォーム側のPOST送信
を行いたいと思っております。

php

1<div class="row"> 2 <div class="col-sm-5 offset-sm-5 text-right pb-2"> 3 <button type="button" class="btn btn-primary"><i class="fa fa-check-circle"></i> 編集</button> 4 <button type="button" class="btn btn-outline-secondary hidden-xs" id="print"><i class="icon-printer"></i> 印刷</button> 5 <form id="basic-form" class="form-button" method="post" action="{{route('app.destroy', ['id' => $app->id])}}"> 6 {{ csrf_field() }} 7 {{ method_field('delete') }} 8 <button type="submit" class="btn btn-danger"><i class="icon-trash"></i> 削除</button> 9 </form> 10 </div> 11 <div class="col-sm-2"> 12 </div> 13</div>
$('.form-button').click(function(){ Swal.fire({ title: '重要確認', text: "本当に削除しますか?", type: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'OK' }).then((result) => { if (result.value) { return true; } }); }); });

現在このようなコードを書いて、アラートも表示されるのですがPHP側の削除の方も並行して
進んでしまいOKを押さなくても完了してしまいます。

本来実装したかったOKを押したら、削除が実行されるというのはどのように記述すればよいでしょうか?

追記

jquery側でPOST送信をするやり方は調べたら出てきたのですが、phpでidを付けて送信しているのと
同じことを実装しようとすると躓きました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ES7のasync/awaitをLaravel Mixtとbabelでやる方がよりシンプルですが、
トランスコンパイラを使わない場合は、
一例として、以下のように、preventDefaultでブラウザの持つデフォルトアクションを防いだ後で、
アラート成功時に、イベントリスナを削除するunbindを組み合わせて、再度form送信イベントを呼び出すと動作します。

<body> <form action="{{ route('test.store') }}" method="post" id="form"> @csrf <input type="text" name="test"> <button>送信</button> </form> <script> var onSubmit = function(e){ e.preventDefault(); Swal.fire({ title: '重要確認', text: "本当に削除しますか?", type: 'warning', showCancelButton: true, confirmButtonColor: '#3085d6', cancelButtonColor: '#d33', confirmButtonText: 'OK' }).then(function(e){ $('#form').unbind('submit', onSubmit); $('#form').submit(); }) } $("#form").on("submit",onSubmit) </script> </body>

参考
jQueryでsubmitイベントを一旦止めて、非同期してまた動かすの難しい

投稿2019/06/02 03:25

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

memimemi

2019/06/03 11:54

aro10さん、ありがとうございます! 無事解決出来ました。結構需要ありそうな内容だと思うのですが、一度止めて再送信という方法しかないのですね~^^;
aro10

2019/06/03 21:43

async/awaitを使えば、非同期処理を待機できるので、Laravel Mixを使ってみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問