![](/img/trans.png)
[英]Javascript- passing variables to php page with window.location.href not working
[英]Django/JavaScript: passing hidden variables to a page with window.location.href?
抱歉,這個問題有點令人費解。
我希望Django頁面有時顯示橫幅消息。 有時用戶會通過window.location.href
到達,然后我希望顯示橫幅,並顯示一條消息,該消息由用戶剛剛執行的操作確定。
細節:
window.location.href
設置為項目的頁面來實現。 該項目顯示為可用或已簽出,但我也想向用戶顯示另一條消息... 最后一個項目是我遇到問題的地方:如何“告訴”項目頁面要顯示的消息以及何時顯示消息? 人們還將通過掃描儀到達物品頁面。
?t=checked_out
或?t=returned
),但是感覺很混亂。 t=checked_out
參數發布到項目頁面(這也感覺不對),那么將其重定向到其他地方而不是顯示頁面,這不是Django的好習慣嗎? 也許我對最后一點太掛了。
無論如何,基本問題是:如何最好地通過window.location.href
將隱藏變量傳遞給頁面?
謝謝你的幫助。 我覺得這里還有一些基本的知識需要學習:)
為什么對第2/3步完全提出AJAX請求? 您異步POST,然后重定向。
您是否可以使用有關javascript所做信息的常規POST,在django后端的會話中添加一些消息(並加載項目視圖)以及服務器重定向到項目頁面?
Django的方式肯定是在django
會話中做到的。
如果必須的話,您的方法應該仍然可以:
request.session['myvar'] = 'ajax_posted_stuff'
) ajax_posted_stuff = request.session['myvar']
) 例:
def ajax_view(request):
if successful_response():
request.session['show_banner'] = True
return JSON # or whatever you were doing before
def item_view(request):
context = {}
if request.session.get('show_banner'):
context['show_banner'] = request.session.pop('show_banner')
return render_to_response("mytemplate.html", context)
# item.html
{% if show_banner %}
<h1>Banner shown!</h1>
{% endif %}
您為什么認為使用Cookie會很雜亂? 如果可以的話,我會說去買餅干。 您可以從window.document.cookie
讀取cookie。
作為cookie的替代方法,最干凈的解決方案是使用URL哈希:
http://example.com/page#co
您可以使用window.location.hash
輕松檢查哈希的存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.