色とJSON情報が合っていなくどう直せば良いのでしょうか?
PythonとDjangoとHTMLとJSでWEBサイトを作っています。{{ form }}のドリルダウンをいじると背景・h1・pの色が変わるしくみになっています。
index.html に
<!DOCTYPE html> <html> <head lang="ja"> <meta charset="UTF-8"> </head> <body> {{ form }}<br> <hr> <h1>h1LETTER</h1> <p>pLETTER</p> {{ form }}<br> <hr> <h1>h1LETTER</h1> <p>pLETTER</p> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script> var xhr = new XMLHttpRequest(); xhr.onload = function(){ colors = JSON.parse(xhr.response) console.log(colors) color_array = [] for (var i=0 ; i<=colors.length ; i++){ color_array[i] = { "background-color" : colors[i]["background_color"], "h1" : colors[i]["h1_color"] , "p" : colors[i]["p_color"] , }; } } xhr.open("GET","http://localhost:8000/app/api/get/",false); xhr.send({}) function change_color(){ color_id = $("#id_color").val(); color_object = color_array[color_id]; $("body").css("background-color", color_object["background-color"]); $("h1").css("color", color_object["h1"]); $("p").css("color", color_object["p"]); } $( '#id_color' ).change( function () { change_color(); }); change_color(); </script> </body> </html>
と書きました。{{ form }} のところにモデルにある色の情報が入るようになっています。models.pyには
from django import forms from .models import Color class ColorForm(forms.Form): color = forms.ModelChoiceField( queryset=Color.objects.all(), empty_label=None, required=False, )
と書きました。
今、WEBサイトは
![
のような状態で、
ドリルダウンで選択した色と背景の色が合っていません。
JSONは
のようにちゃんと取得しているのでなぜこのように背景色とドリルダウンで選択した色が一致していないのかわかりません。
どのように直せば良いのでしょうか?
{{ form }}のところには
<tr><th><label for="id_color">Color:</label></th><td><select name="color" id="id_color"> <option value="1">white</option> <option value="2">green</option> <option value="3">pink</option> </select></td></tr><br>
回答1件
あなたの回答
tips
プレビュー