2012-10-25 45 views
0

這可能是一個愚蠢的問題,但我儘量做到與jQuery POST請求,我不知道如何設置我的「URL」在我的崗位要求。網址發佈採購信息的jquery Django的

我有一個變量 「ID」:

var url = window.location.pathname.split('/'); 
var id = url[3]; 

而且我想我的崗位去/ mysite的/ XXX/「ID」/

這裏是我的崗位要求:

$.post("/mysite/xxx/'id'", { 
    name: "test" 
    }); 

我不知道該怎麼辦包括變量「ID」在我的網址的結尾。感謝您的幫助。

P.S:這個帖子請求轉到完全相同的網址,讓我嘗試實現它。我不知道是否有一個更簡單的方式做到這一點比重新指定整個URL。

回答

1

爲什麼不這樣做呢?

$.post(window.location.pathname, { 
    name: "test" 
}); 
+0

利斧。非常感謝你。 – JojoL

1
$.post("/mysite/xxx/"+id, { 
    name: "test" 
}); 

你的問題是「如何連接字符串和變量」。

如果你不得不這樣做"/mysite/xxx/ID/yyy/"你可以做"/mysite/xxx/"+id+"/yyy/"

+0

謝謝你,但我得到這個錯誤在控制檯:未捕獲的SyntaxError:意外的標記非法 – JojoL

+0

這是從你的代碼,不是我的。檢查你的'id'變量是否可以從你使用它的地方訪問。 – Grsmto

0

如果當前頁面上發佈您可以執行:

$.post(window.location.pathname, { 
    name: "test" 
}); 

$.post('.', { 
    name: "test" 
}); 

如果你的另一頁上發佈,你可以用你的URL標記,並把它作爲一個變量來你的模塊:

<script> 
    var url = '{% url my-url "{token}" %}'; 

    $.post(url.replace('{token}', 'param'), { 
     name: "test" 
    }); 
</script> 

注意,標記應與正則表達式類型,成功解決(不能使用{token}如果參數與\d+定義)。

我對這個解決方案有點不滿意,我最終編寫了自己的應用程序來處理javascript與Django:django.js。有了這個應用程序,我可以這樣做:如果發佈早期,需要等待Django.js做好準備

{% load js %} 
{% django_js %} 
<script> 
    Django.onReady(function() { 
     $.post(Django.url('my-url', 'param'), { 
      name: "test" 
     }); 
    }); 
</script> 

Django.onReady()包裝纔是必需的。我一個真實的案例,你只需要做

$.post(Django.url('my-url', 'param'), { 
    name: "test" 
});