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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

1回答

1579閲覧

ajaxで複数のPHPを実行したい

aiueoaiueoaiue

総合スコア94

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2018/09/22 10:20

編集2018/09/26 08:00

###実現したい事
Ajax通信を使って複数のPHPを実行させたいのですが上手くいきません。最初はただ単にAjax通信を2つ連続で記述していただけなのですが、それだとブラウザで実行した時に1つ目のAjaxで指定されたURLのPHPは間違いなく実行されるのですが、2つ目のAjaxで指定されたURLのPHPは実行されたりされなかったりとバラバラです。
サイトを参考に以下のソースを書いてブラウザ上で実行してみたのですが、PHPは2つとも実行されませんでした。解決策が分かる方回答お願いします。
###該当ソース

JavaScript

1// 2つのリクエストURL(必要であればデータも)を用意します 2var request = [ 3 { url: url1, data: {"abc":"abc", 4 "xyz":"xyz"}}, 5 { url: url2, data: {"def":"def", 6 "uvw":"uvw"}}]; 7var jqXHRList = []; 8// Ajaxのリクエスト処理を作成します 9for (var i = 0; i < request.length; i++) { 10 jqXHRList.push($.ajax({ 11 type: "POST", 12 contentType: "application/json", 13 url: request[i].url, 14 data: request[i].data 15 })); 16} 17// 非同期処理を実行します 18$.when.apply($, jqXHRList).done(function () { 19 // 1つ目のURLの処理の結果を受け取ります 20 var userId = arguments[0][0]; 21 // 2つ目のURLの処理の結果を受け取ります 22 var itemId = arguments[1][0]; 23}).fail(function (ex) { 24 // サーバー側での処理に失敗した際に、呼び出されます 25 alert("Ajax通信に失敗しました"); 26});

PHP

1<?php 2$a = isset($_POST['abc']) ? $_POST['abc']: null; 3$x= isset($_POST['xyz']) ? $_POST['xyz']: null; 4 $file = fopen($a.$x.".txt", "w"); 5 fclose($file); 6?>

###以前のソース

JavaScript

1$.ajax({ 2 url: url1, 3 type: "POST", 4 data: {"abc":"abc", 5 "xyz":"xyz"} 6 }); 7 8 $.ajax({ 9 url: url2, 10 type: "POST", 11 data: {"def":"def", 12 "uvw":"uvw"} 13 });

このソースだと1つ目のURLのPHPは確実に実行されるのですが、2つ目のURLのPHPは実行されたりされなかったりとまちまちです。実行されてるか否かの判定はPHPが実行されたらテキストファイルが作成されるので、ファイルがされているか否かで判別しています。

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

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

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

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

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

miyabi-sun

2018/09/23 01:03

質問文のコードハイライトの時点で見れば分かりますが、PHPファイルの変な所にダブルクォートがあり、構文エラーが出そうですが大丈夫ですか?
guest

回答1

0

$.ajax({
type: "POST",
url: url1,
data: {"abc":"abc", "xyz":"xyz"}
}).done(function(resp){
console.log(resp);
});
$.ajax({
type: "POST",
url: url2,
data: {"def":"def", "uvw":"uvw"}
}).done(function(resp){
console.log(resp);
});

javascriptを上記に修正して、うまくいかないならurl1、url2の指定が間違っています。

投稿2018/09/23 07:13

kaba

総合スコア314

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

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

aiueoaiueoaiue

2018/09/24 05:29

以前まで書いていたソースを新たに追記したのですが、こちらのソースと何か違いがあるのでしょうか?
kaba

2018/09/24 07:06

違いはないようです。 「2つ目のURLのPHPは実行されたりされなかったり」 そんな挙動するはずがないです。 実行されているのにそれに気づいていないのではないか、 url2の指定が間違っているかのどちらかです。
aiueoaiueoaiue

2018/09/26 07:58

やっぱり何回か実行して見たんですけど、上手く行く時と行かない時にばらつきますね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問