Kemas kini 'div' selepas permintaan ajax
P粉891237912
P粉891237912 2023-08-17 11:47:33
0
1
436
<p>Ini adalah projek pertama saya di Django. Saya baru menggunakan Django, ajax dan javascript. Saya perlu menghantar data ke templat jinja selepas membuat permintaan ajax. </p> <p>Indeks.html saya adalah seperti berikut:</p> <pre class="brush:php;toolbar:false;">{% jika data %} <p>{{data.title}}</p> <p>{{data.price}}</p> {% endif %}</pre> <p>Javascript saya adalah seperti berikut:</p> <pre class="brush:php;toolbar:false;"><script> $.ajax({ taip: "POST", url: "/", // Gantikan dengan URL paparan sebenar data: { input_value: "ujian", csrfmiddlewaretoken: "{{ csrf_token }}" }, kejayaan: fungsi (tindak balas) { title = response // Selepas permintaan, respons akan menjadi { "data" : {"title":"t1", "price":20} } }, ralat: function() { console.log("Ralat") } }); <skrip></pre> <p>Saya tidak tahu sama ada ini boleh dilakukan. Sesetengah orang menggunakan element.innerHTML untuk mengemas kini, tetapi saya perlu menghantar kepada format jinja. Terima kasih</p>
P粉891237912
P粉891237912

membalas semua(1)
P粉403804844

Anda mempunyai dua pilihan di sini, bergantung pada pilihan anda.

  1. Kembalikan templat dan bukannya JSON Idea di sini adalah untuk menjana templat pada bahagian pelayan dan kemudian mengembalikan HTML yang dijana kepada pemanggil AJAX. Jadi kejayaan Ajax hanyalah menambahkan serpihan HTML ini ke lokasi yang betul.

  2. Render div dalam JS Jika anda hanya mempunyai strategi JSON atau menggunakan DRF, satu-satunya cara ialah menggunakan gelung untuk menggelungkan item yang diterima dan menjana HTML yang setara dan kemudian menambahkannya pada dokumen.

Anda tidak boleh meletakkan JinJa pada halaman yang sama kerana apabila anda menjana halaman untuk memaparkannya, anda belum menerima data lagi.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan