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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

jQuery

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

Ajax

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

Q&A

解決済

1回答

633閲覧

Jsonで定義した処理をajaxを通して実行したい

chill_soup

総合スコア13

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

jQuery

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

Ajax

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

0グッド

0クリップ

投稿2020/05/12 10:57

JSONで定義した処理をAjaxで実行したいと考えておりますが、jQueryに関しての知識が浅く、苦戦しております。
下記が現在の内容です。

JSON

1 [{ 2 'is_valid': False, 3 'error':form.errors, 4 }]

Ajax

1 $.ajax({ 2 processData: false, 3 contentType: false, 4 dataType: 'json', 5 url: $form.attr('action'), 6 type: $form.attr('method'), 7 data: new FormData(form), 8 }).done(function(data,textStatus) { 9 if (data.is_valid) { 10 window.location.href = data.redirect; 11 } 12 else { 13          data.errorを実行したい 14 } 15 });

です。
お力をいただけたら、幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは、下記のようなコードでどうでしょうか?

jQuery

1$.ajax({ 2 processData: false, 3 contentType: false, 4 dataType: "json", 5 url: $form.attr("action"), 6 type: $form.attr("method"), 7 data: new FormData(form), 8}).done(function (data, textStatus) { 9 if (data[0].is_valid) { 10 window.location.href = data[0].redirect; 11 } else { 12 data[0].errorを実行したい; 13 } 14});

もしくは、

jQuery

1$.ajax({ 2 processData: false, 3 contentType: false, 4 dataType: "json", 5 url: $form.attr("action"), 6 type: $form.attr("method"), 7 data: new FormData(form), 8}).done(function (data, textStatus) { 9 $(data).each(function(i,obj){ 10 if (obj.is_valid) { 11 window.location.href = obj.redirect; 12 } else { 13 obj.errorを実行したい; 14 } 15 }); 16}); 17

投稿2020/05/12 12:33

fake_shibe

総合スコア806

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

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

chill_soup

2020/05/14 05:32

data[0]の部分なんですが、これはなぜ[0]を加える必要があるかお伺いしても良いですか?
fake_shibe

2020/05/14 06:49

[{ 'is_valid': False, 'error':form.errors, }] が配列になっているので、何番目か指定する必要があります。 []がついてなければ、[0]や[1]もしくは[2]など指定する必要はなく、data.is_validで値が取得できます。 var data = ["a","b","c"]; の値を取得したいとき、data[0]や、data[1]とやるのと同じです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問